JavaScript 代码的执行结果

收藏
JavaScript高级
46
Feb 3, 2018
var x = 3;

var foo = {
    x: 2,
    baz: {
        x: 1,
        bar: function() {
            return this.x;
        }
    }
}

var go = foo.baz.bar;

alert(go());
alert(foo.baz.bar());

回答

星辰回答

问题分析:

这个题主要考察this的指向问题,;

alert(go()); 这个go函数执行的上下文为window 所以结果为3;
alert(foo.baz.bar());这个bar函数是foo.baz对象的方法,this指向该对象所以结果为1;

this总结:

1. 普通函数中的this 指向window(如果是严格模式指向undefined);

2. 对象方法中的this指向该对象;

3. 定时器中的this 指向window;

4. 构造函数中的this 指向实例对象;

(1)

提交成功