Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自初始化主干视图_Javascript_Backbone.js - Fatal编程技术网

Javascript 自初始化主干视图

Javascript 自初始化主干视图,javascript,backbone.js,Javascript,Backbone.js,我想知道是否有一种自初始化主干视图的简单方法。我最好能举个例子说明我想做什么 目前,初始化主干视图的默认方式如下: var BBview = Backbone.View.extend({}); var myView = new BBview(); 出于名称间隔的原因,我想“自动”或“自”初始化主干视图。比如说 var MyApp.MyView = Backbone.View.extend({}).initialize(); 这样,MyApp.MyView将自动成为我的视图,而不必先创建一个变

我想知道是否有一种自初始化主干视图的简单方法。我最好能举个例子说明我想做什么

目前,初始化主干视图的默认方式如下:

var BBview = Backbone.View.extend({});
var myView = new BBview();
出于名称间隔的原因,我想“自动”或“自”初始化主干视图。比如说

var MyApp.MyView = Backbone.View.extend({}).initialize();
这样,MyApp.MyView将自动成为我的视图,而不必先创建一个变量作为主干视图,然后再创建另一个变量对其进行初始化。希望这是有道理的。非常感谢您的帮助。谢谢各位

Backbone.View.extend()
返回一个构造函数,以便可以对其调用
new
。唯一棘手的部分是获得正确的优先级,以便
extend
看到括号中的参数,而不是
new
将它们视为构造函数的参数:

var v = new (Backbone.View.extend({ ... }));
演示:

没有额外的括号:

var v = new Backbone.View.extend({ ... });
您将(或多或少)执行以下操作:

那不是你想要的

我不推荐这种事情,你只会让那些在六个月内看到你的代码的人感到困惑。最好使用函数来避免名称空间污染:

var myView = (function() {
    var BBview = Backbone.View.extend({});
    return new BBview();
})();
这可能没有那么漂亮或聪明,但它有一个巨大的优势,即它是一种常见且可立即识别的模式。

主干。View.extend()
返回一个构造函数,以便您可以对其调用
new
。唯一棘手的部分是获得正确的优先级,以便
extend
看到括号中的参数,而不是
new
将它们视为构造函数的参数:

var v = new (Backbone.View.extend({ ... }));
演示:

没有额外的括号:

var v = new Backbone.View.extend({ ... });
您将(或多或少)执行以下操作:

那不是你想要的

我不推荐这种事情,你只会让那些在六个月内看到你的代码的人感到困惑。最好使用函数来避免名称空间污染:

var myView = (function() {
    var BBview = Backbone.View.extend({});
    return new BBview();
})();

这可能没有那么漂亮或聪明,但它有一个巨大的优势,即它是一种常见且可立即识别的模式。

只需使用
新的
操作符直接初始化主干视图:

var myView = new Backbone.View();
或使用extend:

var myView = new (Backbone.View.extend({ 
      initialize : function() { console.log('init'); } 
}));

只需使用
new
操作符直接初始化主干视图:

var myView = new Backbone.View();
或使用extend:

var myView = new (Backbone.View.extend({ 
      initialize : function() { console.log('init'); } 
}));