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如何,私有变量都具有最后存储的值。任何帮助表示赞赏。
谢谢
最佳答案
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);
});
关于javascript - 用javascript中的private方法访问的private变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9784896/