我继承了一个对象如下:
projectile.prototype = Object.create(interactiveElement.prototype);
function projectile(){
interactiveElement.call(this);
}
interactiveElement有一个方法draw,已定义。
interactiveElement.prototype.draw = function(){
}
当我这样称呼它时它可以正常工作
var myArrow = new projectile();
myArrow.draw();
但是如果再次继承并从而调用draw方法:
arrow.prototype = Object.create(projectile.prototype);
function arrow(){
projectile.call(this);
}
var myArrow = new arrow();
myArrow.draw();
然后我得到错误“箭头没有方法'画''。你能继承一次吗?我是否正确地做到了?
答案 0 :(得分:0)
这是一个工作示例(http://jsfiddle.net/2n62J/)
function interactiveElement() {
}
interactiveElement.prototype.draw = function(){
console.log('draw');
};
function projectile() {
interactiveElement.call(this);
}
projectile.prototype = Object.create(interactiveElement.prototype);
projectile.prototype.fire = function() {
console.log('projectile fire');
};
function arrow() {
projectile.call(this);
}
arrow.prototype = Object.create(projectile.prototype);
arrow.prototype.fire = function() {
projectile.prototype.fire.call(this); // if you want to call the parent function
console.log('arrow fire');
};
var myArrow = new projectile();
myArrow.draw();
myArrow.fire();
var myArrow2 = new arrow();
myArrow2.draw();
myArrow2.fire();