事件调用环境:
谁触发事件,函数中的this指向就是谁
全局环境:
全局环境下this指向的window 如果js是在node 环境下运行 此时this指向的是module.exports
函数内部:
函数直接执行时 this指向window(非严格模式) undefined(非严格模式 此时正确用法为window.fun())
this最终指向的是调用他的对象 和他的声明位置没有关系
函数被多层对象包含 this被最外层对象调用 this依旧指向上层对象 例:window.obj.b.fu() 指向b
构造函数中的this:
1>调用函数
2>自动创建一个对象
3>把创建出来的对象和this进行绑定
4>如果构造函数没有返回值,隐式返回this对象
5>若果构造函数中有返回值 返回值不是对象 依旧隐式返回this对象 如果返回的是对象 指向对象 null除外
箭头函数:
箭头函数没有this和arguments,在箭头函数中实际上是引用上一层级的this
修改this指向:
call('要修改成为的对象', ‘参数1’,‘参数2’) 且调用函数
apply('要修改成为的对象', [‘参数1’,‘参数2’]) 且调用函数
bind('要修改成为的对象', ‘参数1’,‘参数2) bind不会调用函数 需要手动调用
网友评论