2

我创建了一个主干视图

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)或类似的参数来明确视图中需要这些值?

4

1 回答 1

0

Javascript 函数没有定义数量的参数,所以基本上你不能。
写作:

function(name) {...}

只是一个快捷方式:

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

如果您的参数未定义,您最终可能会抛出错误:

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

但是,是的,除此之外,您不能强制使用论点。

编辑:
如果你的问题只是清晰度,我担心你也不能这样做。

Edit2:
好吧,如果你真的想的话,你可以,但我真的会避免走那些路。

于 2013-04-04T17:48:25.837 回答