简单地说,这两段代码之间是否存在差异,是否有理由使用其中一种?
代码#1:
var thing=function(){}
thing.prototype={
some_method:function(){
alert('stuff');
}
}
代码#2:
var thing=function(){}
thing.prototype.some_method=function(){
alert('stuff');
}
答案 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(){
构造。