function createFunctionWithProperty(property) {
functionWithProperty.property = property;
return functionWithProperty;
function functionWithProperty() {
}
}
var a = createFunctionWithProperty(123);
var b = createFunctionWithProperty(321);
alert(a.property + " : " + b.property); // 123 : 321
据我所知,两者createFunctionWithProperty
都是functionWithProperty
函数声明,它们在执行任何 JavaScript 代码之前被提升、解析并存在。然而在某些时候,在调用createFunctionWithProperty
函数时,functionWithProperty
它变成了一个闭包,这是一个非常特殊的functionWithProperty
函数实例,它具有自己的属性和变量,每个实例都不同。这都是理论上的,但在这种情况下,我不明白事情是如何运作的。有人会详细说明何时以及如何确切地functionWithProperty
关闭。谢谢你。