javascript window.onload область - PullRequest
2 голосов
/ 04 мая 2010

Может кто-нибудь объяснить, почему предупреждение возвращает «неопределенный» вместо «привет»?

window.onload = function() {  
    var a = 'hello';  
    alert(window.a);  
}

Ответы [ 2 ]

6 голосов
/ 04 мая 2010

переменная 'a' не является частью окна в вашем контексте.

a относится к анонимной функции, назначенной вами для загрузки.

Вы МОЖЕТЕ добавить в качестве члена окна, если хотите:

window.onload = function() {  
    window.a = 'hello';  
    alert(window.a);  
}

но я бы посоветовал не делать этого.

5 голосов
/ 04 мая 2010

"Именованные переменные определяются с помощью оператора var. При использовании внутри функции var определяет переменные с помощью функции-scope."- ( source )

Чтобы быть доступным глобально и, в частности, сделать a членом объекта window, измените свой код следующим образом:

var a; // defined in the global scope
window.onload = function() {  
    a = 'hello'; // initialized
    alert(window.a);  
}

Или так:

var b = 'world'; //defined and initialized in the global scope
window.onload = function() {  
    alert(window.b);  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...