我知道下面這個是閉包function makeFunc() { var name = "Mozilla"; function displayName() {
alert(name);
} return displayName;
}
var myFunc = makeFunc();
myFunc();有人說,在執(zhí)行過程完畢后,返回函數(shù),或者將函數(shù)得以保留下來,即形成閉包。那么,是不是下面的第一種就可以算作閉包了,紅皮書說,函數(shù)內(nèi)部創(chuàng)建另一個函數(shù)叫閉包,那么如何解釋下面兩個情況?
var a = 1
var b = function(){ console.log(a)
}
var c = 1
function d(){ console.log(c)
}《javascript權(quán)威指南》 (第六版)第8章第6節(jié):從技術(shù)的角度講,所有的JavaScript函數(shù)都是閉包:它們都是對象,它們都關(guān)聯(lián)到作用域鏈?!秊avascript高級程序設(shè)計》(第三版)第7章第2節(jié):閉包是指有權(quán)訪問另一個函數(shù)作用域中的變量函數(shù);
如何判斷是不是閉包?
慕桂英4014372
2018-09-14 14:13:09