我习惯于以这种方式使用构造函数:
function Computer(ram) {
this.ram = ram;
}
// Defining a property of the prototype-
// object OUTSIDE of the constructur-
// function.
Computer.prototype.getRam = function() {
return this.ram + ' MB';
}
我在构造函数中定义和初始化值。方法附加在原型对象外部构造函数。
昨天我见过这些技巧:
function Car(maxSpeed) {
this.maxSpeed = maxSpeed;
// Defining a property of the prototype-
// object WITHIN the constructur-
// function.
Car.prototype.getMaxSpeed = function() {
return this.maxSpeed + ' km/h';
}
}
该方法在 中定义构造函数=>如果不创建至少一个对象,则该方法不存在。
我总是认为第一种方法有点奇怪,有人可以在构造函数-object上调用方法。然后,使用this-keyword的所有属性都返回undefined。 使用第二种技术会引发错误。
这两种技术的优点和缺点是什么?
我应该选择/避免哪一个以及出于什么原因?