thisthis

this

在 JavaScript 中,关键字 this 表示当前执行上下文中的对象。换句话说,this 引用的是当前正在执行代码的对象。具体来说,this 的值取决于函数是如何被调用的。在全局作用域中使用 this 会返回全局对象(浏览器中为 window,Node.js 中为 global),在函数中使用 this 则取决于函数的调用方式。 –chatgpt老师

方法中的this

为什么需要thisuser被销毁,使用user.name 肯定会报错

1
2
3
4
5
6
7
8
9
10
let user = {
name: "John",
age: 30,
sayHi() {
alert( user.name ); // 导致错误 this.name不会报错
}
};
let admin = user;
user = null; // 重写让其更明显
admin.sayHi(); // TypeError: Cannot read property 'name' of null

this不受限制

在 JavaScript 中,this 关键字与其他大多数编程语言中的不同。JavaScript 中的 this 可以用于任何函数,即使它不是对象的方法。
this 的值是在代码运行时计算出来的,它取决于代码上下文。

  • 严格模式下的 this 值为 undefined

  • 在非严格模式的情况下,this 将会是全局对象

箭头函数没有自己的this

当我们并不想要一个独立的 this,反而想从外部上下文中获取时,它很有用。

this的绑定

  • 默认绑定 非严格模式绑定window对象

  • 隐式绑定 与上下文执行环境有关

  • 显示绑定 call bind apply 的第一个参数都可以是函数内this指向的对象

  • new 绑定 使用构造函数new的一个新的实例对象时,当前构造函数的this会指向新的实例对象


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!