Hep*_*tic 1 javascript prototype
我需要在JavaScript中使用超级简单继承的超级可读版本.这是一些自动生成的代码,我无法使用外部函数或库.
我真正想要的是,假设Point3d"继承"Point,我想要这样的东西:
function Point(x,y) {
this.x = x;
this.y = y;
}
function Point3d(x,y,z) {
Point(x, y);
this.z = z;
}
Run Code Online (Sandbox Code Playgroud)
除了它实际上没有工作:
var pt = new Point3d(230,30,11);
// but x and y are in global scope, they should be in pt.x and pt.y :(
Run Code Online (Sandbox Code Playgroud)
一个可能的选择,在代码生成中会复制所有成员 - 但由于Javascript是基于原型的,我想这很容易做到(如果我真的知道Javascript)
谢谢
小智 8
使用Point构造函数应用于Point3d对象.call().
function Point3d(x,y,z) {
Point.call(this, x, y);
this.z = z;
}
Run Code Online (Sandbox Code Playgroud)
该.call方法设置this您正在调用的函数的值.
这里我们将它设置为Point 3d正在构造的新对象.
如果Point原型上有任何Point3d应该继承的东西,你可以使Point3d.prototype对象成为空的实例Point.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |