2014-12-13 103 views

回答

0

是的,內部函數變量可以訪問外部函數變量,但不是周圍的其他方式。很好的澄清問題。下面是訪問包含範圍內的變量的函數的簡單示例。

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

+0

對於上述實施例ⅰ具有打印10 20,但是10被印刷在解釋的序列而Y沒有定義,爲什麼? – 2014-12-13 19:22:04

+0

javascript會在y定義之前運行console.log(x,y),所以y將被記錄爲未定義。 如果您運行返回的函數,則y將在該點定義,第二個console.log將會正確記錄 – 2014-12-13 20:46:08

相關問題