Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中类属性和函数原型的区别_Javascript - Fatal编程技术网

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将显示所有实例,但

我想了解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将显示所有实例,但
Rectangle.UNIT=new Rectangle(1,1)代码不做同样的事情?

矩形。单位
是一个静态类属性。它只能在矩形类对象上访问。在矩形的任何实例上都无法访问它

Rectangle.prototype.UNIT
是一个原型属性,可以在Rectangle的实例上访问

如果创建继承自
矩形的类
Square
,则
Square
的任何实例都将共享相同的原型属性,但不共享任何静态类属性

您可能会发现这些文章很有帮助(尽管可能有点晦涩):


Rectangle.UNIT类似于类静态成员,而Rectangle.prototype.UNIT是本地成员。看起来您希望在本例中使用Rectangle.UNIT,因为您只需要对象的一个静态实例

@Mozilla开发者中心。干净利落

请您再详细说明一下:“共享给定原型继承链的类之间的静态属性可能会有所不同。”