一、快手考察this指向
var name = "outer";
function K() {
let name = "k";
let innerObj = {
print: function() {
console.log(name);
console.log(this.name);
}
}
return innerObj;
}
let o = K();
o.print(); // 输出是什么? k undefined
/*
o = K()返回结构体:{
print: function() {
console.log(name);
console.log(this.name);
}
o.print() 执行结构体中的print方法,this为o
第一个值k :console.log(name)直接打印其外层的this;
第二个值undefined:结构体o没有name值,故this.name为undefined(this指向o)
*/
let p = o.print;
p(); // 输出是什么?k outer
/*
第一个值k :console.log(name)直接打印其外层的this;
第二个值outer :p() 的this指向window
*/