[Javascript] Truyền tham số cho hàm setTimeout

Có đoạn code sau:

var hello = ‘xin chào’;

setTimeout( function(){

alert(hello); // đoạn này sẽ không còn alert ra ‘xin chào’ nữa mà alert ra bonjour

}, 1000);

hello = ‘bonjour’; // biến đã bị thay đổi

Vậy làm thế nào để truyền được biến hello vào hàm alert?

Rất đơn giản, thực ra hàm setTimeout đã cho chúng ta truyền tham số, nhưng không hiểu sao một số tài liệu như w3schools lại hướng dẫn sai. Hàm đúng phải như sau:

setTimeout(functionName,millisec, param)

Như vậy bài toán trên sẽ giải quyết như sau:

var hello = ‘xin chào’;

setTimeout(alert, 1000, hello); // nó sẽ alert ra ‘xin chào’ sau 1 giây

hello = ‘bonjour’; // biến đã bị thay đổi không ảnh hưởng tới hàm trước đó

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s