Сокрытия или Замыкания задают область видимости переменным.
var x = "global";
function outer() {
var y = "outer";
function inner() {
var x = "inner";
}
}
global
outer
inner
//VariableEnvironment: {x: undefined, etc.};
var x = "global";
//VariableEnvironment: {x: "global", etc.};
function outer() {
//VariableEnvironment: {y: undefined, outerLex: {x: "global", etc.}};
var y = "outer";
//VariableEnvironment: {y: "outer", outerLex: {x: "global", etc.}};
function inner() {
//VariableEnvironment: {x: undefined, outerLex: {y: "outer", outerLex: {x:"global", etc.}};
var x = "inner";
//VariableEnvironment: {x: "inner", outerLex: {y: "outer", outerLex: {x:"global", etc.}};
}
}
Пример.
a.onclick = function(){
this.innerHTML = 1; // здесь this - это объект <a>
setTimeout(function(){
this.innerHTML = 2; // здесь this - это объект window
}, 1000);
};
Комментариев нет:
Отправить комментарий