在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” [重复]
使用关键字“this”和“that”的 knockout.js