箭头函数寻找
var user = "小花";
const obj = {
user: "小兰",
fn2() {
console.log("fn2", this.user);
},
};
const obj2 = {
// 只有函数才有自己的作用域
user: "小白",
fn3: () => {
// this===window
console.log("fn3", this.user);
},
};
// 箭头函数没有自己的this,
// 他会上下文中找this , 箭头函数的this定义的时候就固定不变了
const fn2 = () => {
console.log("fn2", this.user);
};
fn2(); //小花
fn2.call(obj); //小花
obj2.fn3(); //小花
const xxx = obj2.fn3(); //小花
obj2.fn3.call(obj); //小花
多层嵌套
const x1 = () => {
this.user = "小绿";
// this===window user=小绿
console.log("x1", this.user);
const x2 = () => {
console.log("x2", this.user);
const x3 = () => {
console.log("x3", this.user);
};
x3(); //小绿
};
// x3(); x2调用的时候x3才被定义 //undefined
x2(); //小绿
};
x1(); //小绿
文章探讨了JavaScript中箭头函数的特性,强调它们没有自己的this,而是从上下文中继承。在fn2和fn3的例子中,展示了箭头函数的this始终保持定义时的上下文,即使在不同对象调用也不会改变。此外,还通过多层嵌套的箭头函数x1,x2,x3说明了this的继承规则。
170

被折叠的 条评论
为什么被折叠?



