在这种情况下如何做原型继承?

时间:2012-04-05 19:26:43

标签: javascript inheritance prototype

如何使用此示例进行继承。

我正在尝试创建一个充当单例的对象文字。在这里,我想提取我的课程。接下来,这些类应该在适用的时候相互继承

像这样:

var Singleton = {

    car: function() {
        this.engine= true;
    },

    ford: function() {
        this.color = 'red';
    }
};

我想让福特继承酒吧,但我不能这样做

    ford: function() {
        this.color = 'red';
        this.prototype = new this.car();
    }

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

var Something = {

    foo: function() {
        this.greet = 'hello';
    },
    bar: function() {
        this.color = 'blue';
    }
};

Something.bar.prototype = new Something.foo();
alert((new Something.bar()).greet)

以下是inheritance

的入门读物

答案 1 :(得分:1)

如果你试图让bar继承foo的属性,那么你可以做这样的事情(注意,这样你就不会有原型属性了):

var Something = {
    foo: function() {
        this.greet = 'hello';
    },
    bar: function() {
        Something.foo.call(this);
        this.color = 'blue';
    }
};

然后像这样使用它:

var bar = new Something.bar();
bar.color // blue
bar.greet // hello

答案 2 :(得分:0)

你可以这样做:

function Foo() {
    this.greet = "hi!";
}

Bar.prototype = new Foo;

function Bar(color) {
    Foo.apply(this.arguments);
    this.color = color;
}

var myBar = new Bar("red");

以这种方式创建的Bar将包含greetcolor属性。此方法保留Prototype属性。