检查如果一个方法添加一个方法在JavaScript
问题描述:
反对,我想方法添加isBlack到汽车仅当此方法已不存在之前就已经存在。在页面的底部,我已经通过检查无论是在原型,并在汽车对象本身做到这一点。我想知道是否有更好的方法来处理案件。我不喜欢双重支票。检查如果一个方法添加一个方法在JavaScript
注意isBlack方法可能得出汽车从汽车本身或通过原型。
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';
}
答
双重检查可能是它会得到的。另一种选择将被实例化一个Car
和检查isBlack
在里面,这是一个相当浪费。
答
只要你准备充分的原型路线,因此你必须创建这些使得它们可以没有副作用(你需要做的,创建的每个实例作为原型子的使用安全地构建-types),你可能只是测试它这样的一个实例。
if (!(new Car()).isBlack) {
Car.prototype.isBlack = 'false';
}
你知道'Car.isBlack'和'Car.prototype.isBlack'不是互斥的吗?你可以让前者没有后者定义,反之亦然。 – 2009-09-22 14:57:28