下面的兩個代碼塊在上下文中工作,並且看起來功能上完全相同。據我瞭解js prototypes相當不錯,所以我不問他們本身(除非是唯一的區別)。viewmodel .prototype .function vs self .function in viewmodel?
相反,如以下所示比較兩個簡單的方法把一個方法上的圖模型,是否有任何影響/對Knockout,例如差異綁定時間?
定義([ 「敲除」, 「文本./ home.html做爲!」],功能(KO,homeTemplate){// < - 一個AMD Module
function HomeViewModel(route) { var self = this; self.message = ko.observable('Snacks!'); self.eatSomething = function() { self.message('Yum, a viewmodel snack.'); }; } return { viewModel: HomeViewModel, template: homeTemplate }; });
與添加
定義([ 「敲除」, 「!文本./ home.html做爲」],功能(KO,homeTemplate){
0123:通過原型方法});
(該代碼是Yeoman's腳手架輸出的一個簡單的MOD經由Knockout generator,它創建的鍋爐板代碼爲knockout component,一個相當新的(KO 3.2)和非常受歡迎的特徵。一個好的KO分量解釋器是here. )
有用的說明 - 你是什麼意思**'揭示模塊模式'**?順便說一句,我只是偶然發現了你的[Knockout AMD Helpers](https://github.com/rniemeyer/knockout-amd-helpers) - 看起來非常有用 - 尤其是像包含自己模板的模塊。所以也非常感謝! – 2014-10-06 22:04:26
有幾個鏈接描述了揭示模塊模式,這裏是一個:http://weblogs.asp.net/dwahlin/techniques-strategies-and-patterns-for-structuring-javascript-code-revealing-module-模式。基本上,你可以定義你想要的任何方法,並且可以直接引用變量。然後,您將模塊中的公共「API」與您想要公開的方法一起返回,並使用您想要公開的任何名稱。希望有所幫助! – 2014-10-07 14:13:52
@ RPNiemeyer - 你沒有寫關於這個確切問題的博客嗎?我想我回想起過去一直在使用Google,並且這是我最終選擇的地方 – user210757 2015-03-03 15:10:06