【问题标题】:use of "that" keyword in javascript [duplicate]在javascript中使用“that”关键字[重复]
【发布时间】: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的神秘这种行为的一个很好的解释

标签: javascript


【解决方案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
猜你喜欢
  • 2018-09-19
  • 2011-07-18
  • 2014-01-16
  • 2017-09-18
  • 2017-10-01
  • 1970-01-01
  • 2014-08-13
  • 2012-09-04
  • 2010-12-18
相关资源
最近更新 更多