• this指向


    1. this 指向有哪几种

    • 默认绑定:全局环境中,this默认绑定到window
    • 隐式绑定:一般地,被直接对象所包含的函数调用时,也称为方法调用,this隐式绑定到该直接对象
    • 隐式丢失:隐式丢失是指被隐式绑定的函数丢失绑定对象,从而默认绑定到window。显式绑定:通过call()apply()bind()方法把对象绑定到this上,叫做显式绑定
    • new绑定:如果函数或者方法调用之前带有关键字new,它就构成构造函数调用。对于this绑定来说,称为new绑定
      • 构造函数通常不使用return关键字,它们通常初始化新对象,当构造函数的函数体执行完毕时,它会显式返回。在这种情况下,构造函数调用表达式的计算结果就是这个新对象的值
      • 如果构造函数使用return语句但没有指定返回值,或者返回一个原始值,那么这时将忽略返回值,同时使用这个新对象作为调用结果
      • 如果构造函数显式地使用return语句返回一个对象,那么调用表达式的值就是这个对象

    2. 改变函数内部 this 指针的指向函数(bind,apply,call的区别)

    • apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法
    • call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法
    • bind除了返回是函数以外,它的参数和call一样

    3. 箭头函数

    • 箭头函数没有this,所以需要通过查找作用域链来确定this的值,这就意味着如果箭头函数被非箭头函数包含,this绑定的就是最近一层非箭头函数的this
    • 箭头函数没有自己的arguments对象,但是可以访问外围函数的arguments对象
    • 不能通过new关键字调用,同样也没有new.target值和原型
  • 相关阅读:
    技术分享 | SQL 优化:ICP 的缺陷
    转行IC第一步:应该怎么选择公司和岗位?
    Qt串口:QSerialPort、QSerialPortInfo
    【Python】利用字符串切片输出回文诗
    Chrome小恐龙快跑小游戏——Python实现
    K8S的基础知识
    【Qt QML】TabBar的用法
    一秒出图?SDXL-Turbo实时AI绘画整合包下载
    绿色至未来,积极应对树木资源消耗问题-FSC认证
    Mysql优化笔记
  • 原文地址:https://blog.csdn.net/php_martin/article/details/125768960