2013-04-04 34 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:
嗯,你可以,如果你真的想,但我真的避免走这些路径。