私有变量由javascript中的私有方法访问

时间:2012-03-20 10:21:33

标签: javascript

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是什么。任何帮助表示赞赏。

由于

1 个答案:

答案 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);
});