gpt4 book ai didi

javascript - 通过传递构造函数参数来继承属性

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:12 25 4
gpt4 key购买 nike

以下代码行改编自 Mozilla JavaScript tutorial 的解决方案,Ball 类继承了 Shape 类的 x、y 属性。

Mozilla page似乎暗示要从 Shape 继承 x, y,它们必须在 Ball 构造函数的参数列表中定义(并在 Shape.call 函数调用中使用)。但为什么这是必要的呢?原始 Shape 构造函数不采用任何这些参数。

假设 random 是其他地方定义的函数。

var width = canvas.width = window.innerWidth;
var height = canvas.height = window.innerHeight;

function Shape() {
this.x = random(0,width);
this.y = random(0,height);
}

function Ball(x, y) {
Shape.call(this, x, y);
this.size = random(10,20);
}

Ball.prototype = Object.create(Shape.prototype);
Ball.prototype.constructor = Ball;

这是他们在前面的示例中所做的注释:

“在这种情况下,我们在创建新对象实例时指定继承的属性,但请注意,即使实例不要求将它们指定为参数,您也需要在构造函数中将它们指定为参数(例如,也许您有一个在创建对象时设置为随机值的属性。)”

最佳答案

我是最初编写这些文档的人。首先,我必须对造成的困惑表示深深的歉意 - 那天我的大脑没去吃午饭;-/

我已更新代码和示例来解决问题,如本 GitHub 问题中所述:

https://github.com/mdn/learning-area/issues/7

如果您发现 MDN 内容还有任何问题,请告诉我。

谢谢。

关于javascript - 通过传递构造函数参数来继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785607/

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