-
js中只有两大类数据类型,即基本数据类型(Number, String, Boolean, Null, undefine, symbol)和引用数据类型(Object)。Object可以用符号
{}
来表示,比如函数的函数体function(){}
也是一个Object。所有的运行环境(context)本质上都是在一个Object的内部,而bind方法则是将一个函数绑定为一个Object的属性,也就是绑定到一个Object的context范围内。 -
this指的是调用该方法的对象
class A{ constructor(){ this.func = this.func.bind(this) } func(){ ... } }
在es6 class中,当我们在constructor中写this.func = this.func.bind(this)的时候,第一个this.func指向的是constructor的context,而调用constructor方法的就是class Object,简单来说:
? <- { this }
this指的就是它前面和后面的这两个花括号所包含的范围的调用者
-
回调函数的this
回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。 回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
即,回调函数的this需要搞清楚是谁调用了它,this就指向谁
-
箭头函数没有自己的this,箭头函数中的this指的是它上上层{}的范围
? <- { ()=>{ this } }
理解js bind和this
最新推荐文章于 2024-09-06 16:11:28 发布