在JavaScript中定义对象方法的最佳方法是考虑性能。
示例一在每次使用new
进行实例化时都会创建对象方法。
function Person(first, last) {
this.first = first;
this.last = last;
this.fullName = function() {
return this.first + ', ' + this.last;
};
this.fullNameReversed = function() {
return this.last + ', ' + this.first;
};
}
var me = new Person('Robert', 'Rocha');
示例2创建一次对象方法,所有实例共享相同的方法。
function Person(first, last) {
this.first = first;
this.last = last;
}
Person.prototype.fullName = function() {
return this.first + ', ' + this.last;
};
Person.prototype.fullNameReversed = function() {
return this.first + ', ' + this.last;
};
var me = new Person('Robert', 'Rocha');
两者都有任何性能优势吗?