我正在使用 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;
};
我喜欢使用第一种方式,但有人建议我它效率低下。这两种方式有什么区别?
最佳答案
刚刚自己找到了解决方案。
John Resig 的扩展函数自动从作为参数传递的对象创建构造函数。第一种方式,对象中的 dance 方法会自动赋值给返回对象的原型(prototype)。这意味着返回的构造函数(类)实际上将使用第二种样式。所以没有必要使用第二种方式。
因此,当使用 John Resig 的代码时,第一种方法并不是低效的。
关于javascript - 直接向 JavaScript 构造函数添加方法和使用原型(prototype)添加方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162958/