javascript原型(prototype)分享

标签 javascript prototype

我想学习如何在 javascript 中使用原型(prototype),我了解到原型(prototype)可以帮助我,例如在多个对象之间共享函数

var car = function(color, speed) {
    this.color = color;
    this.speed = speed;
}
car.prototype.doors = 4;
var honda = new car('black', 'beep');
var kea = new car('black', 'meep');
document.write(kea.doors+' '+ honda.doors);
honda.doors = 2;
document.write('<br/>');
document.write(kea.doors+' '+ honda.doors);
car.prototype.doors = 4;
document.write('<br/>');
document.write(kea.doors+' '+ honda.doors);

我在这里看到了一个视频:Here

那家伙说,如果我更新原型(prototype)的值,那么我所有对象中的变量都会改变,但在我的例子中,当我改变它时,值并没有改变。 如果我错了,请纠正我。

最佳答案

它们只会针对没有显式更改此属性的对象进行更改。我在最后一步更改了您的代码以设置 5 扇门:

car.prototype.doors = 5;

https://jsfiddle.net/g1hrujL0/ 在那里你可以看到 kea 对象的门数发生了变化,它继承了它的原型(prototype)的值,但是由于我们已经明确地为 honda 对象改变了这个属性,它的值没有改变。

关于javascript原型(prototype)分享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032520/

相关文章:

javascript - 使用 Jquery 不循环地从另一个 div 中删除一定数量的 div

javascript - 如何分离相互依赖的 redux reducer?

javascript - 父对象原型(prototype)继承的差异

JavaScript 关联数组访问返回 "literal"数组原型(prototype)代码

javascript - 如何设置函数的原型(prototype)

JavaScript:是否可以替换像 Array.prototype.indexOf 这样的函数?

javascript - 如何将上下文参数发送到 webhook/fulfilments DialogFlow v2

javascript - 如何使用jquery检测iframe中的点击事件

javascript - 如何在 CSS 中更改选定选项卡的颜色

javascript - 继承:构造函数不运行 "super"?