zoukankan      html  css  js  c++  java
  • this的思考

    问题:JS中为什么要用this?

    回答:因为this采用隐式“传递”一个对象的引用,所以可以将API设计得更加简洁和可复用

    问题:JS中的this是什么?

    背景:this是在运行时绑定的,this的上下文取决于函数调用的各种条件,又取决于函数的调用方式

    本质:当一个函数被调用时,会创建一个活动记录(也称为执行上下文)。

    这个活动记录会包含有这个函数在哪里被调用(调用栈)、这个函数的调用方式、传入的参数等信息。

    this就是这个活动记录的一个属性,会在这个函数执行的过程中用到。

    问题:JS中如何判断一个运行中函数的this绑定?
    前提:首先我们要找到这个函数的直接调用位置

    分析:

    • 情况:由new调用?

      判断:绑定到新创建的对象
    • 情况:由call或者apply(或者bind)调用?

      判断:绑定到指定的对象
    • 情况:由上下文对象调用?

      判断:绑定到上下文对象

    • 情况:默认情况?

      判断:绑定到全局对象
    • 情况:严格模式下的默认情况?

      判断:绑定到undefined
    • 情况:ES6中的箭头函数

      判断:根据当前的词法作用域来决定this

  • 相关阅读:
    matlab常见函数汇总
    matlab矩阵合并汇总
    matlab之光谱预处理
    matlab添加高斯噪声
    ArcMap将shp文件批量逐个导出
    hdu 1090 A+B for Input-Output Practice (II)
    c语言插入排序递归法
    c语言最大公约数(辗转相除法)递归
    c语言斐波那契数列递归法
    c语言反转字符串
  • 原文地址:https://www.cnblogs.com/wuyongyu/p/8649202.html
Copyright © 2011-2022 走看看