下面的片段完全一样。第一:
var obj_button = {
clicked: 1,
click: function() {
console.log(clicked);
}
};
第二个:
var Func_button = function() {
var clicked = 1;
this.click = function() {
console.log(clicked);
}
}
但是当我想使用闭包时,第一种方法失败了:
func = new Func_button();
func.click(); // OK - works fine, outputs 1
obj_button.click(); // FAIL - he don't know what is "clicked"
所以我的问题是:为什么在第一种方法中,方法 click() 无法看到“点击”参数。闭包不应该覆盖这个参数(就像在第二个例子中一样)?