我在寫一些客戶端Javascript,我想呈現一些標籤和表格。這是相關代碼:javascript執行錯誤的函數
(function() {
var Table = function() {
this.render = function() {
console.log('rendering table');
};
return this;
};
var Tabs = function() {
var table = Table();
this.render = function() {
console.log('rendering tabs');
table.render();
};
return this;
};
(function() {
var tabs = Tabs();
tabs.render();
})();
})();
我期待什麼:控制檯應該顯示rendering tabs
,rendering table
,並用它做。
究竟發生了什麼:控制檯顯示成千上萬的rendering tabs
,直到jsFiddle崩潰。
這表明table.render()
實際上是遞歸調用tabs.render()
。但爲什麼?我發現這種行爲相當令人費解,有人可以解釋我的錯誤在哪裏嗎?
使用'新標籤()'和'新表()' –