->在任何地方都可以調(diào)用內(nèi)部函數(shù)
->內(nèi)部函數(shù)能訪問外部變量
i:
var globalVar;
function outerFn() {
console.log('Outer function');
function innerFn() {
console.log('Inner function');
}
globalVar = innerFn;
}
console.log('outerFn():');
outerFn();
console.log('globalVar():');
globalVar();
ii:
function outerFn() {
console.log('Outer function');
function innerFn() {
console.log('Inner function');
}
return innerFn;
}
console.log('var fnRef = outerFn():');
var fnRef = outerFn();
console.log('fnRef():');
fnRef();
iii:
function outerFn() {
function innerFn() {
var innerVar = 0;
innerVar++;
console.log('innerVar = ' + innerVar);
}
return innerFn;
}
var fnRef = outerFn();
fnRef();
fnRef();
var fnRef2 = outerFn();
fnRef2();
fnRef2();
當(dāng)內(nèi)部函數(shù)在定義它作用域的外部被引用時(shí)糕簿,就創(chuàng)建了改內(nèi)部函數(shù)的一個(gè)閉包。