本文主要汇总开发中后端、语言,遇到的小问题以及对小问题的研究
一句话
一句话: 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来表示

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

引用
阮一峰: JavaScript的this原理