console.log(this); // 此处为 window
// 箭头函数
const sayHi = function () {
console.log(this); // 该箭头函数中的 this 为函数声明环境中 this 一致
};
// 普通对象
const user = {
name: "小明",
// 该箭头函数中的 this 为函数声明环境中 this 一致
walk: () => {
console.log("walk里面的", this); // 箭头函数本身没有this,所以往上找,user是对象,也没有this,所以继续向上找,所以最后是window
},
sleep: function () {
let str = "hello";
console.log("sleep外层的this", this);
let fn = () => {
console.log(str);
console.log("fn", this); // 该箭头函数中的 this 与 sleep 中的 this 一致
};
// 调用箭头函数
fn();
},
};
// 动态添加方法
user.sayHi = sayHi;
// 函数调用
user.sayHi();
user.sleep();
user.walk();
08-27
863
04-27
984
09-07
639
07-27