告诉我如何从函数的范围(在结构中)访问其父元素(在结构中)?

例如:

var mystruct = {
    element1: 10,
    element2: 'test',
    element3: {
        sub1: 'data',
        sub2: function(){
            return this;
        }
    },
};

var res = mystruct.element3.sub2();


结果:

res = {sub1: 'data', sub2: f}


但是函数mystruct.element3.sub2如何访问元素mystruct.element1?

例如:

sub2: function(){
    return this.parent.element1;
}


结果:

res = 10


方法:

sub2: function(){
    return mystruct.element1.sub1;
}


不适合,因为在功能范围内,我不了解mystruct

最佳答案

如果我理解正确,则您要访问主要对象。一种方法是将“ element3”定义为一个函数,以便您可以创建用于访问“ mystruct”的闭包。就像是:

var mystruct = {
    element1: 10,
    element2: 'test',
    element3: function () {
        var parent = this;
        return {
            sub1: 'data',
            sub2: function(){
                return parent.element1;
            }
        }
    },
};




您可以通过以下方式使用:

mystruct.element3().sub2()


给出:

10

09-10 10:50
查看更多