js中this的理解

本文主要汇总开发中后端、语言,遇到的小问题以及对小问题的研究

一句话

一句话: this是函数的运行时环境
解释: 谁调用的函数,this就是谁

例如:

  var a = 1

  function test() {
    console.log(this.a)
  }

 var obj = {}
 obj.a = 2
 obj.t = test

 obj.t()           // 2
 t()               // 1

两个注意

bind函数

函数的this可以通过bind来绑定,使其不受调用者的影响

function test (){}
test.bind(this)

箭头函数

箭头函数() => {},this始终指向定义者,而不受调用者的影响。

内存解释

变量

var obj = { foo:  5 };

它在内存中先创建一个 对象,然后再将这个对象的地址用obj来表示

变量-2

函数

var obj = {foo: funciton(){}}

函数与变量捎有不同,它先将函数独立存储在内存中(应该在代码段里),然后再将函数的地址赋值给foo属性的value值,也就是说foo那里存储的是函数的地址。

函数

引用

阮一峰: JavaScript的this原理

# 语言 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×