关于 this 的理解, 为什么会输出 undefined ?

var name = 'The window';
(function () {
    var name = 'wgm';
    console.log(this.name); //'The window'
    (function () {
        var name = 'wm'
        console.log(this.name); //'The window'
        (function () {
            var name = 'w'
            console.log(this.name); //'The window'
            var obj1 = {
                name: 'obj1',
                test(callback) {
                    console.log(this.name); //'obj1'
                    callback();
                }
            }
            var obj2 = {
                name: 'obj2',
                sayThis() {
                    console.log(this.name); //'The window'
                    return this.name;
                }
            }

            console.log(
                obj1.test(obj2.sayThis) //undefined 为什么会输出这样的结果??
            );
        })();
    })();
})();
阅读 1.7k
1 个回答

因为obj1.test 没有return,默认返回 undefined

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题