2011-04-21 53 views
0

下面的代碼模式是如何我構建我的AJAX系統。我很擔心何時添加更多原型屬性。這可能會影響可維護性和效率。是否有更好的選擇以下JavaScript構造?

是否有更好的替代方法可以爲AJAX創建可維護和高效的構造?

function AjaxSample() 
{ 
    //bindJS() is used to bind the 'this' pointer to the scope of the function 
    $('#button_one').click(bindJS(this.button_oneEvent,this)); 
} 

AjaxSample.prototype.button_oneEvent = function(event) 
{ 
    //code to handle the event 
} 
+0

請注意,現代瀏覽器在Function原型上有一個「bind()」函數,它完全符合您的「bindJS」函數的功能。你的方法沒有任何問題。 – Pointy 2011-04-21 11:43:16

+0

我也考慮到我的大部分用戶都在IE6上。 – samxli 2011-04-21 11:44:54

+1

那麼@samxli沒關係,你的「bindJS」函數可以在IE6上正常工作,或者你可以將它添加到像Prototype.js庫那樣的Function原型中。 – Pointy 2011-04-21 11:45:48

回答

1

是的。

var self = this; 
$('#button_one').click(function() { 
    self.button_oneEvent(); 
}); 

使用這種技術,它更明顯是什麼實際發生。

+3

我不明白爲什麼這比問題中的內容要好。 「bindJS」函數大概會返回一個匿名函數,最終會執行完全相同的操作。 – Pointy 2011-04-21 11:42:39

+0

我不認爲這是「更obvouis」。這是一個風格問題。 – Raynos 2011-04-21 13:43:40

相關問題