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,我有一个基本视图V: 由VV扩展,它设置属性q:234: V进一步专用于VV: ​ 问题是基类型无法访问q,我如何才能做到这一点? 在这个例子中,我试图理解这个继承系统 q和z类似于要在中定义的虚拟/抽象值 子类 当你这么说的时候: VV = V.extend({q: 234}); 您正在将VV创建为V的子类,该子类将具有额外的q属性。该类定义的属性与从中处理的自动选项无关 如果说创建视图的新实例,文档可能会更好 然后,当您新建VV{z:123}时,该{z:123}在其单个选项参数pre-1.

我有一个基本视图V:

由VV扩展,它设置属性q:234:

V进一步专用于VV:

​ 问题是基类型无法访问q,我如何才能做到这一点? 在这个例子中,我试图理解这个继承系统 q和z类似于要在中定义的虚拟/抽象值 子类

当你这么说的时候:

VV = V.extend({q: 234});
您正在将VV创建为V的子类,该子类将具有额外的q属性。该类定义的属性与从中处理的自动选项无关

如果说创建视图的新实例,文档可能会更好

然后,当您新建VV{z:123}时,该{z:123}在其单个选项参数pre-1.1.0 Backbones中被传递给视图的initialize方法,它会自动设置此选项。对于构造函数的选项,q将位于此.q中,因此您的初始化应该更像这样:

initialize: function(options) {
  console.log(options.z);
  console.log(this.q);
}
此外,如果您这样做:

var VVV = VV.extend({q: 'pancakes'});
您将替换VV实例得到的默认q,而这个.q将是初始化中的“煎饼”

演示:

使用类似于子类化,或者更准确地说,它创建了一个新的原型实例,而new创建了新对象或原型实例的副本。当然,类/实例语言并不适合JavaScript的实际情况,因此我们必须小心,不要把术语看得太重

VV = V.extend({q: 234});
initialize: function(options) {
  console.log(options.z);
  console.log(this.q);
}
var VVV = VV.extend({q: 'pancakes'});