认识function中的this在不同环境下的指向
- 全局:浏览器环境中 指向window,node环境:module.exports 指向的是导出对象。
- 事件调用环境:谁触发事件,this指向的就是谁。
- 函数内部:
- 1)this的最终指向是调用该函数的对象。
- 2)被多层对象包含的函数调用,this指向的是调用该函数而且是距离函数最近的外层对象。
- 3)对象中的函数赋值给一个变量,然后调用,同 1)。
- 构造函数:
使用:var ABC= new fn();
- new的作用:
- 1)调用函数
- 2)自动创建一个对象
- 3)把创建出来的对象和this绑定
- 4)如果构造函数没有返回值,隐式返回this
- 构造函数有return情况:
- 1)return 对象,this指向对象
- 2)return 不是对象,this保持和无return规则一样
- 3)return null,同2)
- 箭头函数 this在定义的时候就已经形成(对象不会形成独立的作用域)
箭头函数是没有this和arguments,在箭头函数调用this是定义的上一层作用域的this
- 改变普通函数的this指向
- call(this,a,b,c) //this是要更改的this指向,a,b,c是参数
- apply(this,[a,b,c])
- bind(this,a,b,c) () //bind默认是没有执行的
网友评论