正确使用类继承Javascript OOP

时间:2014-03-08 04:23:04

标签: javascript oop inheritance

我的语法似乎有些问题,但我不知道这似乎是什么问题。

我正在使用原型继承(如果我没弄错的话)

程序应该是这样的:

  • 该类必须继承父级的功能,因此当我调用该函数时,它将显示一些文本。

以下是我的代码:

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();
}

1 个答案:

答案 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

我猜这是因为你无法取代整个原型。尝试添加原型(虽然这对构造函数没有帮助)。