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