在javascript中使用“that”关键字[重复]

Posted

技术标签:

【中文标题】在javascript中使用“that”关键字[重复]【英文标题】:use of "that" keyword in javascript [duplicate] 【发布时间】:2013-01-30 01:46:09 【问题描述】:

我很少有广泛使用关键字“that”的javascript。 我看到很多帖子都在谈论 javascript 关键字“this”。

我想了解这个关键字在 javascript 上下文中的含义以及它的可见性/范围。

有点像

that.someFunctionaName(someParameter)

什么意思?

我理解关键字“this”总是指向当前对象的所有者。

【问题讨论】:

那不是关键字,而是简单的变量名 that 不是关键字,它是一个简单的变量。对于this,请参阅developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/… 下次提问前请使用搜索功能。 这背后的概念是,当您使用闭包访问对象的范围时,使用“that”作为函数范围的全局变量。在面向对象编程中这不是一个好方法,但在 Javascript 中它是解决此类问题的快速方法。 基于上下文here的神秘这种行为的一个很好的解释 【参考方案1】:

that 不是 JavaScript 中的关键字。我怀疑您拥有的代码正在使用类中的某些内容来定义自身的实例。例如:

function myClass()

    var that = this;

通过这样做,您可以确保您引用的是对象,而不是其他元素。例如,考虑以下示例:

function myClass()

    var that = this;
    $('.myele').click(function()   

        // 'this' refers to the element that was clicked.
        // 'that' still refers to the myClass() object.
    );

【讨论】:

另一个相当常用的变量是self,遵循相同的逻辑。 @BenM 感谢您提供的信息。是的,这有点道理,我会做更多的阅读以了解使用此类参考的各个方面。你是对的,在你提出建议后,我在我的 js 代码库中得到了“that = this”。现在我更清楚了。 嗨@BenM 我的that 看起来像这样var that = ; 是不是和var that = this; 一样 没有。 that ; 将一个空对象分配给 that

以上是关于在javascript中使用“that”关键字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中为啥使用“ var that = this” [重复]

浅析JavaScript中this储存

javascript中var that=this

使用关键字“this”和“that”的 knockout.js

Javascript中var that=this;是什么意思(转)

javascript中this详解