Javascript 使用';这';类中的嵌套函数
可能重复:Javascript 使用';这';类中的嵌套函数,javascript,Javascript,可能重复: 由于在嵌套类函数调用中使用“this”时出现问题,因此我目前在按需要设计JS类时遇到问题。我不知道如何更好地描述它,所以这里有一个我的意思示例 test.html <!DOCTYPE html> <html class="main" lang="en"> <head> <meta charset="utf-8"> <script type="text/javascript" src="test.js">&l
由于在嵌套类函数调用中使用“this”时出现问题,因此我目前在按需要设计JS类时遇到问题。我不知道如何更好地描述它,所以这里有一个我的意思示例 test.html
<!DOCTYPE html>
<html class="main" lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript">
function doIt() {
var myTestClass = new TestClass();
}
</script>
</head>
<body>
<button onclick="doIt();">Do it!</button>
</body>
</html>
当然,这只是一个简单的例子来说明我的意思。
那么,如何在setTimeout调用中的函数中使用“this”标识符,或者如何更好/正确地实现这一点
非常感谢您的帮助!
Cheers将
此
的值保存在变量(self
)中,然后您可以在设置超时
内访问它
function TestClass() {
this.alertValue('This works');
var self = this;
setTimeout(function() {
self.alertValue('This does not work!')
}, 1000);
}
将
this
的值保存在变量(self
)中,然后您可以在setTimeout
内访问它
function TestClass() {
this.alertValue('This works');
var self = this;
setTimeout(function() {
self.alertValue('This does not work!')
}, 1000);
}
这个问题似乎每天都会被问十几次。重要的是要知道,
这个
已经设置好了(或者如果愿意的话可以“重置”)在每次函数调用中。很抱歉问这样一个常见的问题,但我在发布之前诚实地搜索了一个答案,但找到正确答案的问题是,所有关键字都非常通用:-/这个问题似乎每天都会被问十几次。重要的是要知道这个
已设置(或“重置”,如果愿意的话)在每次函数调用中。很抱歉问了这么一个常见的问题,但我在发布之前诚实地搜索了答案,但找到正确答案的问题是所有关键字都非常通用:-/不过,我建议使用比self
更具描述性的词。也许testClass
会有用。@ScottSauyet:Hi,这只是许多库使用的约定,例如jQuery
,将self
命名为实例的缓存引用。明白。我不同意这个惯例。如果您嵌套另一个级别,self2
,您会怎么做?!使用一个更具描述性的名字是非常有用的。非常感谢你的回答@ScottSauyet:我理解你的观点,但我不希望有多个嵌套级别;这可能会让人很困惑。不过,我建议做一些比自我描述更具描述性的事情。也许testClass
会有用。@ScottSauyet:Hi,这只是许多库使用的约定,例如jQuery
,将self
命名为实例的缓存引用。明白。我不同意这个惯例。如果您嵌套另一个级别,self2
,您会怎么做?!使用一个更具描述性的名字是非常有用的。非常感谢你的回答@ScottSauyet:我理解你的观点,但我不希望有多个嵌套级别;这可能会让人很困惑。