我的语法似乎有些问题,但我不知道这似乎是什么问题。
我正在使用原型继承(如果我没弄错的话)
程序应该是这样的:
以下是我的代码:
function myFunction() {
var Property = function(dom,height,width){
this.dom = document.createElement("img");
this.height = height;
this.width = width;
};
Property.prototype.display = function() {
text("The image has: ", this.height+200, this.width+200);
};
Image.prototype = Object.create(Property.prototype)
var firstImage = function(dom,height,width){
Property.call(this, dom, height,width);
};
var image1 = new Image("image.jpg", 10 , 10);
image1.display();
}
答案 0 :(得分:0)
(我认为naomik是更好的方法,但如果你想弄清楚发生了什么,请参阅以下内容:)
显然Image
不允许扩展(至少在我正在测试的Firefox中),因为它可以与其他类一起使用。
如果,在此之后...
Image.prototype = Object.create(Property.prototype)
...你补充说:
alert(Image.prototype.display)
...你会看到它是未定义的,而如果你添加:
function MyImage () {}
MyImage.prototype = Object.create(Property.prototype)
alert(MyImage.prototype.display); // Alerts the "display" function
我猜这是因为你无法取代整个原型。尝试添加原型(虽然这对构造函数没有帮助)。