5.这段代码中的 this 是多少?
把判断依据背下来才能全对
var length = 4;
function callback() {
console.log(this.length); // => 打印出什么?
}
const obj = {
length: 5,
method(callback) {
callback();
}
};
obj.method(callback, 1, 2);
this是call的第一个参数。
f1() 等价 f1.call(undefined)
f1('hi') 等价 f1.call(undefined, 'hi') // 正常
// this在浏览器的环境下会被转成window,node的环境下会被转成global/undefined
函数和对象是没有关系的,对象里面只是存了一个地址
obj.child.say() 相当于f.call(obj.child),假设f是函数的名字
总结转换代码,要背,这是没有new的情况
f(p) => f.call(undefined, p)
o.c.f(p) => f.call(o.c, p)
浏览器加入'use strict',就不会瞎改。改成window
相关链接