书接之前代码输出题目,
异步&事件循环
this
3.代码输出结果
function a() {
console.log(this);
}
a.call(null);
输出结果如下:
window对象
代码执行顺序如下:
根据 ECMAScript262
规范规定:如果第一个参数传入的对象调用者是 null
或者 undefined
, call
方法将把全局对象(浏览器上是 window
对象)作为 this
的值。所以,不管传入 null
还是 undefined
,其 this
都是全局对象 window
。所以,在浏览器上答案是输出 window
对象。
4.代码输出结果
var obj = {
name: 'cuggz',
fun: function () {
console.log(this.name);
}
}
obj.fun() // cuggz
new obj.fun() // undefined
输出结果如下:
cuggz
undefined