Javascript 从方法实例访问此变量

Javascript 从方法实例访问此变量,javascript,Javascript,如何从另一个对象实例访问此对象 var containerObj = { Person: function(name){ this.name = name; } } containerObj.Person.prototype.Bag = function(color){ this.color = color; } containerObj.Person.prototype.Bag.getOwnerName(){ return name; //I w

如何从另一个对象实例访问此对象

var containerObj = {
    Person: function(name){
        this.name = name;
    }
}
containerObj.Person.prototype.Bag = function(color){
    this.color = color;
}
containerObj.Person.prototype.Bag.getOwnerName(){
    return name; //I would like to access the name property of this instance of Person
}

var me = new Person("Asif");
var myBag = new me.Bag("black");
myBag.getOwnerName()// Want the method to return Asif

不要将构造函数放在另一个类的原型上。使用工厂模式:

function Person(name) {
    this.name = name;
}
Person.prototype.makeBag = function(color) {
    return new Bag(color, this);
};

function Bag(color, owner) {
    this.color = color;
    this.owner = owner;
}
Bag.prototype.getOwnerName = function() {
    return this.owner.name;
};

var me = new Person("Asif");
var myBag = me.makeBag("black");
myBag.getOwnerName() // "Asif"

处理此问题的相关模式:,

@MrCode:谢谢,当然应该。如果你只是编辑这篇文章,我不会介意:-)我在调用makeBag方法后设置了me.name=“Smo”。然后myBag.getOwnerName()返回John。这就是我想要它做的,但为什么会这样?我的意思是,当传入的对象发生更改时,this.owner为什么会发生更改?this.downer属性没有更改,它仍然(“指向”)了
me
obj。但那个物体是变异的!