不同JavaScript模式之间的差异

时间:2013-06-29 12:21:50

标签: javascript design-patterns

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 个答案:

答案 0 :(得分:2)

  1. 声明可以使用new x实例化的“类”,它将使用公共方法“add”,此处的“this”在实例化之后引用对象本身。

  2. 为函数x添加'static'方法,这是可能的,因为函数是对象。

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

  4. 向对象x添加属性“add”并将其设置为函数定义。这就像创建一个实例而没有创建过类。