JS中如何精简理解函数的this指向?

2026-05-17 00:500阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

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

JS中如何精简理解函数的this指向?

从原理出发,首先我们围绕this能力进行详细探讨。this最终指向它的调用者。这句话看似简单,但深入理解其背后的执行原理才能更好地解决问题。

从原理出发

首先我们围绕耳熟能详的“this始终指向它的调用者”开始。这句结论虽然没有什么问题,但是说得过于笼统,还是得深入到背后的执行原理才能举一反三解决问题。

举个简单的例子:

var obj = { num: 2; foo: function () { console.log(this.num) } }; var foo = obj.foo; var num = 3; obj.foo();//2 foo();//3

obj.foo();是对象obj调用自身的属性(方法)foothis指向调用者obj
②由var foo = obj.foo;获取函数,并用foo();在全局作用域中调用函数,所以this指向浏览器全局对象Window

内存数据结构的概述

JS之所以设计this,是因为其内存的数据结构的特征。

阅读全文

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

JS中如何精简理解函数的this指向?

从原理出发,首先我们围绕this能力进行详细探讨。this最终指向它的调用者。这句话看似简单,但深入理解其背后的执行原理才能更好地解决问题。

从原理出发

首先我们围绕耳熟能详的“this始终指向它的调用者”开始。这句结论虽然没有什么问题,但是说得过于笼统,还是得深入到背后的执行原理才能举一反三解决问题。

举个简单的例子:

var obj = { num: 2; foo: function () { console.log(this.num) } }; var foo = obj.foo; var num = 3; obj.foo();//2 foo();//3

obj.foo();是对象obj调用自身的属性(方法)foothis指向调用者obj
②由var foo = obj.foo;获取函数,并用foo();在全局作用域中调用函数,所以this指向浏览器全局对象Window

内存数据结构的概述

JS之所以设计this,是因为其内存的数据结构的特征。

阅读全文