JS中this的用法

(1)直接调用(默认绑定)

this == window
注:在严格模式下此时的this指代undefined

(2)隐式绑定(对象.方法())

this指代调用方法的那个对象

(3)显示绑定(call、apply、bind)

this指代 第一个的参数的对象
注:call和apply临时性的只作用于这一次,bind永远绑定方法中的this,返回值就是绑定成功后的函数,但对原来的那个函数没有任何影响,并且使用bind绑定后的函数再使用call和apply也不会改变this的指向,也就是说bind的优先级高于call和apply。

(4)new绑定

this指代将来要创建的那个对象
注:显示绑定的优先级最高,但是call和apply传入的第一个参数是null和undefined,this的绑定会丢失,this会变成window,如果第一个参数是基本类型(除null和undefined外),会先把基本类型包装转换成相应的对象类型。例如数字1包装转换为new Number(1);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,665评论 0 5
  • js中thisd的用法 * this是js中的关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用...
    kahn17阅读 405评论 0 0
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 6,937评论 15 54
  • 与其他语言相比,函数的this关键字在JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有...
    codingC阅读 587评论 0 0
  • 葡萄藤PPT JS中this的指向 大家好,我是IT修真院郑州分院第6期的学员王栋,一枚正直、纯洁、善良的前端程序...
    17064阅读 634评论 0 2