2013-04-04 58 views
1

我創建了一個骨幹查看參數傳遞到Backbone.View的構造

App.MyView = Backbone.View.extend({...}); 

則實例它像

new App.MyView(); 

但如果我的對象需要一些初始值我

new App.MyView({name:"Beautiful"}); 

然後我會從MyView這樣訪問這個選項

App.MyView= Backbone.View.extend({ 
    initialize: function(){ 
     console.log(this.options.name); 
    } 
}); 

這工作不錯,但不是一個不言自明的對象:我有手前需要了解傳入初始值字面方式({this.name:"Beautiful"})爲了使MyView工作的需要..

我如何傳遞像initialize(name)之類的參數或類似的東西來明確在視圖中需要這些值?

回答

0

Javascript函數沒有定義數量的參數,所以基本上,你不能。
寫作:

function(name) {...} 

簡直是一個快捷方式:

function() { 
    var name = arguments[0]; 
    ... 
} 

你最終可能會引發錯誤是你的論點是不明確的:

function(name) { 
    if(typeof name === 'undefined') throw 'Error: missing argument'; 
    ... 
} 

但是,是的,除此之外,你不能強制使用參數。

編輯:
如果你的問題只是清晰度,你不能這樣做,要麼我害怕。

EDIT2:
嗯,你可以,如果你真的想,但我真的避免走這些路徑。