zoukankan      html  css  js  c++  java
  • JavaScript 函数调用的 this词法

           函数调用时的this实际上是在函数被调用时发生绑定,它指向什么完全取决于函数在哪里被调用。

            特例:当函数作为构造函数被调用时,即使用new 来构造一个新对象,会自动执行以下操作:

            【1】创建一个新对象;

            【2】这个新对象会被执行原型连接;(即新对象的__proto__会指向构造函数的prototype对象)

            【3】这个新对象会绑定到函数体中的this;

            【4】如果函数没有返回其他对象,那么new表达式中的函数会自动返回这个新对象。“构造函数”显示地返回一个对象,则会以返回的对象为准,如果“构造函数”返回“string、number、boolean、null、undefined、symbol,等premitive原始数据类型,则忽略该返回值并返回新对象。

            判断函数中this对象的绑定准则:

    • 由new调用?绑定到新创建的对象
    • 由call或者apply(或者bind)调用?绑定到指定对象
    • 由上下文对象调用?绑定到那个上下文对象。
    • 默认:在严格模式下绑定到undefined,否则绑定到全局对象
    • 箭头函数中的this,会通过词法作用域指向该函数定义时的上下文对象,而非调用时动态绑定。

         

  • 相关阅读:
    Matplotlib
    Numpy&Pandas
    莫凡《机器学习》笔记
    李宏毅《1天搞懂深度学习》笔记
    Git客户端使用教程
    像素级压缩感知图像融合的论文
    二分图【洛谷P2175】 小Z的游戏分队
    模板【洛谷P3390】 【模板】矩阵快速幂
    模板 可并堆【洛谷P3377】 【模板】左偏树(可并堆)
    LCA SP913 QTREE2
  • 原文地址:https://www.cnblogs.com/wust-hy/p/7349153.html
Copyright © 2011-2022 走看看