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

  • 相关阅读:
    js 函数声明和函数表达式的区别
    使用dom4j工具包对xml文件解析
    xml的schema约束
    xml的DTD约束
    C3P0连接池工具类使用
    jdbc连接警告不安全
    java的unity单元测试
    BootStrap容器介绍
    validate插件实现表单效验(二)
    validate插件实现表单效验(一)
  • 原文地址:https://www.cnblogs.com/wuyongyu/p/8649202.html
Copyright © 2011-2022 走看看