function Cons(name) {
var pvar1="hi "+name;
sayhi = function() {
alert(pvar1);
}
attEvents(){
$('#'+name).bind("click",sayhi);
}
}
var a = new Cons('name1');
var b = new Cons('name2');
var c = new Cons('name3');
我们假设name1,name2,name3都是div。现在,无论我点击什么div,我总是得到“hi name3”。私有变量在其中具有最后存储的值,而不管单击的div是什么。任何帮助表示赞赏。
由于
答案 0 :(得分:2)
sayhi = function() {
alert(pvar1);
}
如果您在没有var
关键字的情况下定义它,则将其定义为全局关键字。因此sayhi
指的是定义为最后一个的函数。使用
var sayhi = function() {
alert(pvar1);
}
或
var pvar1 = "hi "+name,
sayhi = function() {
alert(pvar1);
};
请注意逗号。或者真正的jQuery风格
$('#'+name).bind("click", function() {
alert(pvar1);
});