this指向问题!!

77 阅读1分钟

求帮助!!

image.png 使用function的写法this为什么会指向undefined呢?

以下是chat的回答,但是感觉并不对 image.png 不出

--------补充一下因为上面问题引发的this学习--------

箭头函数与普通函数在如何处理 this 上有一个重要的区别。箭头函数会继承其外部作用域的 this 值,而普通函数的 this 则取决于函数被调用的方式。

这种行为是箭头函数的一个特性,被称为词法作用域绑定(lexical scope binding) ,它使得箭头函数的 this 始终与外部作用域的 this 保持一致。

在箭头函数中,不会创建自己的 this,而是会从最近的外部函数中继承 this 值。这意味着,如果箭头函数是在一个普通函数内部定义的,它将继承该普通函数的 this 值,而不受该箭头函数被调用的方式的影响。

这样的特性在处理回调函数时非常有用,因为它可以避免在回调函数内部丢失对正确的上下文的引用。

示例`:function outerFunction() { this.name = 'Outer';

// 使用箭头函数定义内部函数
const innerArrowFunction = () => {
    console.log(this.name); // 输出 "Outer"
};

// 使用普通函数定义内部函数
const innerRegularFunction = function() {
    console.log(this.name); // 输出 "Inner"
};

innerArrowFunction();
innerRegularFunction();}

const obj = {
name: 'Inner',
outerFunction: outerFunctio
};

obj.outerFunction();

在这个示例中,outerFunction 内部定义了两个函数:innerArrowFunctioninnerRegularFunction。当调用这两个函数时,innerArrowFunction输出的是外部函数的this,而 innerRegularFunction输出的是调用它的对象的this`。