JavaScript中的this关键字究竟在什么情况下指向哪个对象?

2026-04-09 18:200阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1528个文字,预计阅读时间需要7分钟。

JavaScript中的this关键字究竟在什么情况下指向哪个对象?

`this 的定义表示当前执行代码的环境对象。由于它可以指向不同的对象,可以分为两种类型的环境对象:全局环境和函数环境。

全局环境:当在全局作用域中执行代码时,this 指向全局对象,通常是 window 对象。

函数环境:当在函数内部执行代码时,this 指向函数的调用者。如果没有明确的调用者,或者函数是作为全局代码执行的,那么 this 也会指向全局对象。

下面是一个示例代码:

console.log(this===window); // true

var a=10;console.log(this.a); // 10`

this 的定义

表示当前执行代码的环境对象

因此可将 this 的剖析分为“全局环境” 和 “函数环境” 两种类型的环境对象

全局环境

console.log(this === window); // true var a = 10; console.log(this.a); // 10

函数环境

在函数内部,this 的取值取决于函数被调用时的运行环境。

这里涉及到内存里的数据结构相关的知识点,当我们定义以下字面量对象时会发生一系列的关联关系

var obj = { name: 'Tom' };

javascript 引擎会先在内存中生成 { name: 'Tom'} 对象,接着再把这个对象的内存地址赋值给 obj 变量,所以obj 变量保存的只是一个内存地址而已,如果要获取 obj.name,javascript 引擎会先从 obj 变量中拿到内存地址,然后从该地址中获取原始对象,再返回 name 属性。

阅读全文

本文共计1528个文字,预计阅读时间需要7分钟。

JavaScript中的this关键字究竟在什么情况下指向哪个对象?

`this 的定义表示当前执行代码的环境对象。由于它可以指向不同的对象,可以分为两种类型的环境对象:全局环境和函数环境。

全局环境:当在全局作用域中执行代码时,this 指向全局对象,通常是 window 对象。

函数环境:当在函数内部执行代码时,this 指向函数的调用者。如果没有明确的调用者,或者函数是作为全局代码执行的,那么 this 也会指向全局对象。

下面是一个示例代码:

console.log(this===window); // true

var a=10;console.log(this.a); // 10`

this 的定义

表示当前执行代码的环境对象

因此可将 this 的剖析分为“全局环境” 和 “函数环境” 两种类型的环境对象

全局环境

console.log(this === window); // true var a = 10; console.log(this.a); // 10

函数环境

在函数内部,this 的取值取决于函数被调用时的运行环境。

这里涉及到内存里的数据结构相关的知识点,当我们定义以下字面量对象时会发生一系列的关联关系

var obj = { name: 'Tom' };

javascript 引擎会先在内存中生成 { name: 'Tom'} 对象,接着再把这个对象的内存地址赋值给 obj 变量,所以obj 变量保存的只是一个内存地址而已,如果要获取 obj.name,javascript 引擎会先从 obj 变量中拿到内存地址,然后从该地址中获取原始对象,再返回 name 属性。

阅读全文