2

简而言之,这两段代码之间有什么区别吗?有什么理由使用其中的一段吗?

代码#1:

​var thing=function(){}

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

代码#2:

var thing=function(){}

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

1 回答 1

3

那是一样的。没有理由会有所不同。

但在我看来,最好使用第二种形式,因为如果你决定让thing“类”从另一个类继承,那么你可以改变的更少:

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

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

由于最好保持代码的连贯性,我更喜欢始终使用相同的构造,就是这样thing.prototype.some_method=function(){

于 2012-11-17T16:51:44.280 回答