0
我有这个定义的TabList
:JavaScript的范围混乱
MyApp.TabList = function (selector) {
var private = {
$list: $(selector),
tabs: []
};
this.add = function (tab) {
private.tabs.push(tab);
};
};
当我打电话这一点,但是,并在this.add
人体分解,private
不会出现在局部范围内:
MyApp.tabs = new MyApp.TabList("#tabs");
$("#tab-add").click(function() {
MyApp.tabs.add(new MyApp.Tab("title"));
});
private
不保留在对象内部吗?
如果此代码独立如上,我可能会错过一些—我想简单地把它尽我所能为示范的目的。
@Agile通常你想用`return this;`结束构造函数。我不认为这有什么不同,但这是一个很好的做法(从我听到的)。 – 2010-12-04 01:16:44
@敏感`private`变量不应该在`add`函数的局部范围内 - 它在外部范围内(TabList`构造函数的范围)。 – 2010-12-04 01:18:39