2013-11-26 72 views
0

我想問一下,這兩個應用綁定的區別是什麼 我的代碼我改變了很多,因爲我使用數字2請定義。謝謝。我想問這些KO綁定之間的區別是什麼

首先

var viewModel = function() 
{ 
    ... 
    ... 
} 

var VM = new viewModel(); 

$(function() { 
    ko.applybinding(VM) 
}) 

OR

var viewModel = function() 
{ 
    ... 
    ... 
} 

$(function() { 
    var VM = viewModel(); 
    ko.applybinding(VM) 
}) 

回答

3

這取決於viewModel是否爲需要用new或作爲「工廠」,明確返回一個被實例化一個「經典」的構造實現的目的。經典構造的

例子:

function ViewModel() { 
    var self=this; 
    self.property=ko.observable(); 
    self.list=ko.observableArray(); 
} 

需要注意的是標準的JavaScript的約定是用一個大寫字母開頭的經典構造函數的名稱。工廠/功能構造的

例子:

function viewModel() { 
    var self={}; 
    self.property=ko.observable(); 
    self.list=ko.observableArray(); 
    return self; 
} 

在大多數情況下,這只是個人的選擇使用哪一個的問題。我建議閱讀道格拉斯克羅克福德的JavaScript:The Good Parts中關於對象和繼承的章節,以掌握細微差別。如果您正在創建繼承層次結構或使用instanceof執行大量的運行時類型推斷,那麼「經典」方法可能會更好;如果您使用的是函數式編程風格,「工廠」方法可能會更好,因爲您可以簡單地將工廠作爲回調傳遞,而無需一直包裝它。

+0

感謝兄弟現在的答案,我可以開始做正確的事情.. – Goi

相關問題