一次定义整个原型和单独设置方法之间的区别

时间:2012-11-17 16:50:42

标签: javascript prototype

简单地说,这两段代码之间是否存在差异,是否有理由使用其中一种?

代码#1:

​var thing=function(){}

thing.prototype={
    some_method:function(){
          alert('stuff');        
    }
}

代码#2:

var thing=function(){}

thing.prototype.some_method=function(){
    alert('stuff');        
}

1 个答案:

答案 0 :(得分:3)

那是一样的。没有理由存在差异。

但是在我看来,最好使用第二种形式,因为如果你决定让thing“类”继承自另一种形式,你就不会改变:

thing.prototype = new SuperThing(); // inherits from the SuperThing class
thing.prototype.some_method=function(){
    alert('stuff');        
}

它还可以更轻松地在多个javascript文件中定义您的类。

因为最好保持代码的连贯性,所以我更喜欢使用相同的构造,即thing.prototype.some_method=function(){构造。