gpt4 book ai didi

javascript - 使用与不使用原型(prototype): they seem apparently to do the same的区别

转载 作者:行者123 更新时间:2023-11-30 13:04:52 25 4
gpt4 key购买 nike

使用和不使用prototype有什么区别?他们显然也这样做。

使用原型(prototype):

function poligon(angles){
this.angles = angles;
}
poligon.prototype.color = function(){ return "blue"; }

var mypol = new poligon(14);

alert(mypol.color());

没有原型(prototype):

function poligon(angles){
this.angles = angles;
}
poligon.color = function(){ return "blue"; }

var mypol = new poligon(12);

alert(poligon.color());

添加带有 prototype 和不带有它的“颜色”对象的真正含义是什么?

最佳答案

是的,当引入 javascript 原型(prototype)时,这并不总是很清楚。

如果您向原型(prototype)添加一个方法,则从该原型(prototype)继承的每个对象都将从那时起拥有该函数。在这种情况下,您的类/函数“poligon”可能是唯一继承自该原型(prototype)的类。

当您声明一个新类型(例如“矩形”)时,区别就来了,为此您声明了 rectangle.prototype = poligon.prototype;。现在,您的矩形类将继承在 poligon prototype 中声明的所有方法,如果您只是将方法添加到“poligon”,情况就不会如此。

继承在 javascript 中的工作方式不同,当来自经典的 OOP 语言时,有时会非常困惑。

关于javascript - 使用与不使用原型(prototype): they seem apparently to do the same的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16056081/

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