我有TabList
的定义:
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
是否未保留在对象内?
如果这段代码如上所述单独工作,我可能会错过一些东西 - 我试图将其作为示范用途的最佳方法。
答案 0 :(得分:2)
由于 closure 属性,该变量应该在add()函数中可用。
这可能不是答案,但private
是一个Javascript关键字。您应该尝试避免将其用作变量的名称。它可能会导致未知的错误,有时调试器也无济于事。试一试,让我们知道它是否有效!