在这两种情况下,this的值是什么?一个嵌套函数如何引用另一个函数的返回值?

var rootObj = {
    nestedObjA: {
        functionA: function() {
            // what is value of 'this' here?
            return 'foo';
        }
    },
    nestedObjB: {
        functionB: function() {
            // how to reference? >> rootObj.nestedObjA.functionA
            // what is the value of 'this' here?
        }
    }
}

最佳答案

两个函数中的this值应分别为rootObj.nestedObjA.functionArootObj.nestedObjB.functionB。要检查this的值,可以在每个函数中添加console.dir(this)

要从函数返回值,您应该在函数体内添加return,例如; return rootObj.nestedObjA.functionA()rootObj.nestedObjB.functionB



var rootObj = {
    nestedObjA: {
        functionA: function() {
            // what is value of 'this' here?
            console.dir(this);
            return 'foo';
        }
    },
    nestedObjB: {
        functionB: function() {
            // how to reference? >> rootObj.nestedObjA.functionA
            // what is the value of 'this' here?
            console.dir(this);
            return rootObj.nestedObjA.functionA()
        }
    }
}

var res = rootObj.nestedObjB.functionB();
console.log(res); // 'foo'

关于javascript - 在JavaScript中,如何从更深层的嵌套方法中引用方法的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35491236/

10-10 10:14