【发布时间】:2011-08-21 23:57:51
【问题描述】:
在这个 JS sn-p 中,我有一个带有两个版本的私有函数(bar 和 bar2)的对象。我声明了两个实例,但我发现一个版本的私有函数 (bar) 似乎错误地访问了 OTHER 对象中私有 var v 的值。谁能告诉我这是为什么?
Eric = function(_v)
{
var v = _v;
bar = function() {
alert(v);
};
function bar2() {
alert(v);
};
this.foo = function() {
bar();
};
this.foo2 = function() {
bar2();
};
};
var e = new Eric('I am Eric');
var e2 = new Eric('I am Eric II');
e2.foo(); // outputs "I am Eric II"
e.foo(); // outputs "I am Eric II" ------ WHY?
e2.foo2(); // outputs "I am Eric II"
e.foo2(); // outputs "I am Eric"
非常感谢 安德鲁
【问题讨论】:
标签: javascript function private