如果一个对象在js中创建另一个对象,那么子对象是否可以调用父对象?

时间:2014-05-09 20:00:23

标签: javascript prototype

我有2个原型,为了这个问题,它们是:

function Pizza() {
    var aSlice = new PizzaSlice();
    this.extras = [];
    this.addPaproni = function() {
         this.extras.push("paproni");
    }
}

function PizzaSlice() { }

我可以从PizzaSlice中调用Pizza中的函数,以便它自己发出addPaproni函数吗?

意思是,如果我有几个Pizza对象,那么只有发出呼叫的PizzaSlice的父母才能拥有" paproni"在它的" this.extras"?

2 个答案:

答案 0 :(得分:1)

您可以将函数显式绑定到某个scope。这可能就是你要找的东西。

然而,你的功能布局,似乎这并不是你真正想要的。你究竟想用PizzaSlice功能做什么?

您似乎可能想要使用对象而不是函数,然后使用函数对对象进行操作。

答案 1 :(得分:1)

嗯,代码无法推断'parent'本身是什么,但你可以告诉它。我不确定我是否理解您希望对象如何协作,但这是一个例子。

function Pizza() {
}

Pizza.prototype = {
    Pizza: constructor,
    newSlice: function () { return new PizzaSlice(this); },
    addPepperoni: function () { console.log('add pep..'); }
};

function PizzaSlice(pizza) {
    this.pizza = pizza;
    //you can call pizza.whateverYouWant();
}

var pizza = new Pizza(),
    pizzSlice = pizza.newSlice();