在JavaScript中将对象添加到对象之前检查方法是否已存在

时间:2009-09-22 14:41:15

标签: javascript

如果此方法尚未存在,我想将isBlack方法添加到Car。在页面的底部,我通过检查原型和Car对象本身来完成。我想知道是否有更好的方法来处理这个案子。我不喜欢仔细检查。

请注意,isBlack方法可能来自Car本身或通过原型。

function Vehicle(name){
  this.name = name;
};

Vehicle.prototype.tyres = 4;

function Car(){}

Car.prototype = new Vehicle();

Car.prototype.constructor = Car;

if !(Car.isBlack || Car.prototype.isBlack){
   Car.prototype.isBlack = 'false';
}

2 个答案:

答案 0 :(得分:1)

只要您要使用完整的原型路线,因此您必须创建这些路径,以便可以安全地构建它们而不会产生副作用(您需要创建一个实例,以便将每个实例用作子原型的原型)你可以在这样的实例上测试它。

if (!(new Car()).isBlack) {
    Car.prototype.isBlack = 'false';
}

答案 1 :(得分:0)

双重检查可能和它一样好。另一种方法是实例化Car并在其中检查isBlack,这非常浪费。