我可以通过两种方式声明对象的方法:
第一种方式使用self=this
成语。
function SelfIdiomExample(name){
var self = this;
self.sayHello = function (name){
alert("Hello, "+name);
}
}
当您需要在方法中引用对象时(例如,如果该方法将作为回调传递),这很有用。另一种方法是通过修改原型来做到这一点:
function PrototypeModExample(){
//pass
}
PrototypeModExample.prototype.sayHello = function(name){
alert("Hello, "+name);
}
两者都有相同的结果:
var sieg = new SelfIdiomExample();
var pmeg = new PrototypeModExample();
sieg.sayHello("Barnaby");
pmeg.sayHello("Josephine");
虽然我了解self=this
成语的用例,但我想知道:
使用在构造函数中创建的方法与在原型上创建的方法相比,是否存在性能损失?