Скажем, у меня есть простая функция, которая выдает сообщение:
function callMessage(msg){
alert(msg);
}
Теперь, когда я вызываю ее таким образом, она не работает. Выдает ошибку «привет не определен»
function sayHi(){
var hey = "hi there"
setTimeout("callMessage(hey)", 1000);
}
sayHi();
Но когда я вызываю ее внутри анонимной функции, она работает:
function sayHi(){
var hey = "hi there"
setTimeout(function(){callMessage(hey);}, 1000);
}
sayHi();
Почему переменная «привет» видна только тогда, когда я помещаю ее внутрь анонимной функции?