不同 JavaScript 模式之间的差异

Differences between different JavaScript patterns

本文关键字:之间 JavaScript 模式 不同      更新时间:2023-09-26
var x = function (){
    this.add = function (a,b){ return a + b;}
}
var x = function (){};
x.add = function (a,b){ return a + b;};
var x = function (){}
x.prototype.add = function (a,b){ return a + b;}
var x = {};
x.add = function (a,b){ return a + b;}

有人可以解释上面各种声明之间的区别吗?

谢谢

  1. 声明一个可以使用具有公共方法"add"的new x实例化的"类","this"指的是对象本身,因为它将被实例化。

  2. 向函数 x 添加一个"静态"方法,这是可能的,因为函数是对象。

  3. 将"add"函数添加到 x 的原型中,并且 x 的所有实例都将继承它。

  4. 属性"add"添加到对象 x 并将其设置为函数定义。这就像创建一个实例而从未创建过类一样。