Javascript中类属性和函数原型的区别
我想了解Javascript中类属性和原型之间的区别,代码中显示了我的意思:Javascript中类属性和函数原型的区别,javascript,Javascript,我想了解Javascript中类属性和原型之间的区别,代码中显示了我的意思: function Rectangle(x, y) { this.width = x; this.height = y; } Rectangle.UNIT = new Rectangle(1, 1); Rectangle.prototype.UNIT = new Rectangle(1, 1); 我知道prototype的工作方式与inherit对象类似,这意味着从现在起,UNIT将显示所有实例,但
function Rectangle(x, y) {
this.width = x;
this.height = y;
}
Rectangle.UNIT = new Rectangle(1, 1);
Rectangle.prototype.UNIT = new Rectangle(1, 1);
我知道prototype的工作方式与inherit对象类似,这意味着从现在起,UNIT将显示所有实例,但
Rectangle.UNIT=new Rectangle(1,1)代码>代码不做同样的事情?矩形。单位
是一个静态类属性。它只能在矩形类对象上访问。在矩形的任何实例上都无法访问它
Rectangle.prototype.UNIT
是一个原型属性,可以在Rectangle的实例上访问
如果创建继承自矩形的类Square
,则Square
的任何实例都将共享相同的原型属性,但不共享任何静态类属性
您可能会发现这些文章很有帮助(尽管可能有点晦涩):
Rectangle.UNIT类似于类静态成员,而Rectangle.prototype.UNIT是本地成员。看起来您希望在本例中使用Rectangle.UNIT,因为您只需要对象的一个静态实例 @Mozilla开发者中心。干净利落 请您再详细说明一下:“共享给定原型继承链的类之间的静态属性可能会有所不同。”