-2
內部函數變量可以訪問外部函數變量,它可能或不可能在java script.I混淆的關閉。如何內部函數變量可以訪問使用閉包在javascript中的外部函數變量
function a(){
var x=10;
console.log(x,y);
return function b(){
var y=20;
console.log(x,y);
}
}
內部函數變量可以訪問外部函數變量,它可能或不可能在java script.I混淆的關閉。如何內部函數變量可以訪問使用閉包在javascript中的外部函數變量
function a(){
var x=10;
console.log(x,y);
return function b(){
var y=20;
console.log(x,y);
}
}
是的,內部函數變量可以訪問外部函數變量,但不是周圍的其他方式。很好的澄清問題。下面是訪問包含範圍內的變量的函數的簡單示例。
var name = 'John';
var Person = function(){
this.name = name;
}
var guy = new Person();
guy.name //John
function a(){
var x=10;
console.log(x);
return function b(){
var y=20;
console.log(x,y);
}
}
var x = a();
console.log('x defined')
x();
嘗試運行此看到在JavaScript
對於上述實施例ⅰ具有打印10 20,但是10被印刷在解釋的序列而Y沒有定義,爲什麼? – 2014-12-13 19:22:04
javascript會在y定義之前運行console.log(x,y),所以y將被記錄爲未定義。 如果您運行返回的函數,則y將在該點定義,第二個console.log將會正確記錄 – 2014-12-13 20:46:08