从javascript中的Object初始化器继承

时间:2013-12-03 06:28:53

标签: javascript inheritance

我是Javascript的新手。我使用对象初始化方法定义了一个对象。

var obj = { a : "A";
            b : "B";
            myFunc = function() {
                alert("Hello"):
            }

现在我想创建另一个将成为Obj子对象的对象。我怎样才能做到这一点。

var obj1 = new obj();

无效。

2 个答案:

答案 0 :(得分:2)

首先,您的语法错误

myFunc = function() { ...

无论如何,这就是你想要设置它的方式

function Foo() {
  this.a = "A";
  this.b = "B";
}

Foo.prototype.myFunc = function() {
  alert("hello");
};

现在创建子对象

function Bar() {
  Foo.call(this); // call parent constructor; optional
}

// setup child prototype
Bar.prototype = Object.create(Foo.prototype);
Bar.prototype.constructor = Bar;

检查出来

var b = new Bar();

b instanceof Bar; // true
b instanceof Foo; // true

b.constructor.name; // Bar

b.myFunc; // "hello"

答案 1 :(得分:1)

按照你想要的方式去做:

var obj = {
    a: "A",
    b: "B",
    myFunc: function () {
        alert("Hello");
    }
};

var obj1 = Object.create(obj)
obj1.a = 2;
console.log(obj1);
console.log(obj);