变换莫测的this指向

事件调用环境: 

    谁触发事件,函数中的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不会调用函数  需要手动调用

未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容