在 JavaScript 中,this 关键字是一个特殊的对象,它在函数被调用时自动定义。this 的值取决于函数调用的上下文,也就是函数是如何被调用的。以下是一些常见使用情况:
- 在全局作用域或函数外部调用
this,或者在非严格模式下的函数内部调用this,它将指向全局对象,在浏览器中,这通常是window对象。console.log(this); // 输出:Window {...} - 在函数内部以严格模式(
use strict)调用this,它将返回undefined。function strictFunction() { 'use strict'; console.log(this); } strictFunction(); // 输出:undefined - 在对象的方法中调用
this,它将指向该方法所属的对象。let obj = { name: 'Test Object', display: function() { console.log(this.name); } }; obj.display(); // 输出:'Test Object' - 在构造函数中调用
this,它将指向新创建的对象。function Person(name) { this.name = name; } let person = new Person('John Doe'); console.log(person.name); // 输出:'John Doe' - 当使用
call、apply或bind方法调用函数时,this将指向我们传递给这些方法的第一个参数。function showName() { console.log(this.name); } let obj1 = {name: 'John'}; let obj2 = {name: 'Jane'}; showName.call(obj1); // 输出:'John' showName.call(obj2); // 输出:'Jane'总的来说,
this的值并不是在编写时确定的,而是在运行时确定的,取决于函数的调用方式。这也是this在 JavaScript 中的一个独特和重要的特性。
JavaScript中this关键字的使用与特性
2007

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



