function Car(model, color, power){
this.model = model;
this.color = color;
this.power = power;
this.is_working = true;
this.sound = function(){
console.log("Vrummm!");
};
}
function Car_optionals(){
this.turbo_boost = true;
this.extra_horsepower = 20;
this.name_tag = "Badass";
}
Car.prototype = new Car_optionals();
var Audi = {};
Audi.prototype = new Car();
console.log(Audi.is_working);
所以我也有这个班级Car和Car_optionals,我希望新装箱的对象奥迪继承Car和Car_optionals课程中的礼仪。在对象文字中继承proprietyes和方法是否可行?
答案 0 :(得分:0)
在对象文字中继承proprietyes和方法是否可行?
尚未,但使用ES6,这将是可能的:
var foo = {
__proto__: bar
};
其中bar
成为foo
的原型。
但是,我认为你的意思是说是否可以用特定的原型创建对象。您可以使用Object.create
:
var foo = Object.create(bar);
或者,如果您已有现有对象,则可以使用Object.setPrototypeOf
:
foo.setPrototypeOf(bar);
在您的具体情况下,将Audi
的原型设置为任何内容都没有价值,因为Car
和Car_optionals
没有在prototype
上定义任何内容对象。一切都在函数内部设置,因此您只需将这些函数应用于Audi
:
Car.call(Audi, 'A4', 'blue', 180);
Car_optionals.call(Audi);
通过Car
创建新实例的方式更为自然:
var Audi = new Car('A4', 'blue', 180);
Car_optionals.call(Audi);