Может кто-нибудь объяснить, почему предупреждение возвращает «неопределенный» вместо «привет»?javascript window.onload scope
window.onload = function() {
var a = 'hello';
alert(window.a);
}
Может кто-нибудь объяснить, почему предупреждение возвращает «неопределенный» вместо «привет»?javascript window.onload scope
window.onload = function() {
var a = 'hello';
alert(window.a);
}
«Именованные переменные определяются выражением 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);
}
переменная 'a' не является частью окна в вашем контексте.
a относится к анонимной функции, которую вы назначили для загрузки.
можно добавить в качестве члена окна, если вы хотите:
window.onload = function() {
window.a = 'hello';
alert(window.a);
}
, но я бы предложил не делать этого.