1

我一直在寻找一种在嵌套对象中获取父对象属性的方法,但没有运气。

这是我正在使用的嵌套对象:

var obj = {
        name: 'My Name',
        obj1: {
                 age: 18,
                 name: this.name
            }
    };

但它给出了undefined错误。

JavaScript或jQuery中有什么方法可以实现吗?

4

2 回答 2

4

你可以这样做:

var obj = new obj();

function obj(){
    var self = this;
    self.name = 'My Name';
    self.obj1 = {
        age: 18,
        name: self.name
    }
};
于 2013-07-21T19:59:13.750 回答
0

凭借对 jQuery 的喜爱,我实现了它。

这是我使用的原始版本:

var obj = {
        name: 'My Name',
        obj1: {
                 age: 18,
                 name: this.name
            }
    };

这是我的窍门:

我创建了另一个对象obj1Copy

var obj1Copy = {
    name: obj.name
};

请参阅我正在使用父对象名称而不是this在此副本中。然后使用 jQuery$.extend合并它们:

var newObj = $.extend(obj.obj1, obj1Copy);

然后使用newObj而不是obj1,喜欢newObj.name会返回My Name

如果有更好更简单的方法,请分享。

于 2013-07-21T19:36:23.680 回答