栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用“ var that = this”了解Javascript范围[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用“ var that = this”了解Javascript范围[重复]

要了解的最重要的一点是,函数对象 没有固定的

this
-
this
更改的值取决于函数的调用方式。我们说
_用一个特定的
this
值调用_一个函数-该
this
值是在调用时间而不是定义时间确定的。

  • 如果该函数被称为“原始”函数(例如,do
    someFunc()
    ),
    this
    则将是全局对象(
    window
    在浏览器中)(或者
    undefined
    该函数在严格模式下运行)。
  • 如果将其作为对象上的方法
    this
    调用,则将成为调用对象。
  • 如果你调用一个函数
    call
    apply
    this
    被指定为第一个参数
    call
    apply
  • 如果将其称为事件侦听器(如此处所示),
    this
    它将是作为事件目标的元素。
  • 如果使用调用它作为构造函数
    new
    this
    则将是一个新创建的对象,其原型设置为
    prototype
    构造函数的属性。
  • 如果函数是
    bind
    操作的结果,则该函数将始终永远
    this
    设置为产生该函数的
    bind
    调用的第一个参数。(这是唯一的例外的“函数不具有固定的
    this
    ”规则-产生由功能
    bind
    实际上 有一个不可变
    this
    )。

使用

var that = this;
是一种
this
在函数 定义时 (而不是函数 执行时
this
可以是什么,取决于函数调用方式)存储值的方法。此处的解决方案是将的外部值存储在新定义的函数的范围内的
this
变量(传统上称为
that
self
)中,因为新定义的函数可以访问在其外部范围内定义的变量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400590.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号