我正在使用John Resig的JavaScript class definition style。下面是一个示例类。
var Person = Class.extend({
init: function(isDancing){
this.dancing = isDancing;
},
dance: function(){
return this.dancing;
}
});
定义舞蹈方法的另一种方法是:
Person.prototype.dance = function(){
return this.dancing;
};
我喜欢使用第一种方式,但有人建议我效率低下。这两种方式有什么区别?
答案 0 :(得分:0)
我自己找到了解决方案。
John Resig的extend函数自动从作为参数传递的对象创建构造函数。在第一种方式中,对象中的dance方法将自动分配给返回对象的原型。这意味着返回的构造函数(类)实际上将使用第二种样式。因此没有必要使用第二种方式。
因此,当使用John Resig的代码时,第一种方式效率不高。