gpt4 book ai didi

javascript - 非常简单的 Javascript 继承

转载 作者:行者123 更新时间:2023-11-30 07:17:34 25 4
gpt4 key购买 nike

我需要 JavaScript 中这种 super 简单继承的 super 可读版本。这是一些自动生成的代码,我不能在其中使用外部函数或库。

我真正想要的是,假设 Point3d 从 Point“继承”,我想要这样的东西:

function Point(x,y) {
this.x = x;
this.y = y;
}

function Point3d(x,y,z) {
Point(x, y);
this.z = z;
}

除了它实际上不起作用:

var pt = new Point3d(230,30,11);
// but x and y are in global scope, they should be in pt.x and pt.y :(

一个可能的选择是,在代码生成中复制所有成员——但由于 Javascript 是基于原型(prototype)的,我想这很容易正确地做到(如果我真的了解 Javascript)

谢谢

最佳答案

使用 .call()Point 构造函数应用于 Point3d 对象。

function Point3d(x,y,z) {
Point.call(this, x, y);
this.z = z;
}

http://jsfiddle.net/MSfu5/

.call 方法在您调用的函数中设置 this 的值。

这里我们将其设置为正在构造的新 Point 3d 对象。


如果 Point 原型(prototype)上有任何 Point3d 应该继承的内容,您可以使 Point3d.prototype 对象成为 的空实例>点

关于javascript - 非常简单的 Javascript 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com