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
何时以及如何成为闭包。谢谢。 最佳答案
在这种情况下,它是否是函数,更不用说闭包了,您也可以这样做:
function createObjectWithProperty(property) {
var objectWithProperty = {};
objectWithProperty.property = property;
return objectWithProperty;
}
var a = createObjectWithProperty(123);
var b = createObjectWithProperty(321);
alert(a.property + " : " + b.property);
关于javascript - 在这种特殊情况下,闭包如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19915896/