1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
函數(shù)fn2就被包括在函數(shù)fn1內(nèi)部,這時(shí)fn1內(nèi)部的所有局部變量,對(duì)fn2都是可見的,但是對(duì)于fn2來說是改變不了fn1任何局部變量的值的。
同時(shí)fn2內(nèi)部的局部變量,對(duì)fn1是不可見的。這就是Javascript語言特有的“鏈?zhǔn)阶饔糜颉苯Y(jié)構(gòu)(chain scope),子對(duì)象會(huì)一級(jí)一級(jí)地向上尋找所有父對(duì)象的變量。
所以,父對(duì)象的所有變量,對(duì)子對(duì)象都是可見的,反之則不成立。
var fn2; // 此時(shí)fn2為undefined
var fn1 = function () {
var a = 1
// alert(a)
// 重新定義fn2為一個(gè)函數(shù),因此可以在外部調(diào)用fn2
fn2 = function () {
a = 4;
console.log('fn2',a);
fn1();
}
console.log('fn1',a);
}
fn1();
fn2();
添加回答
舉報(bào)