我看到这段代码,它在做什么?
var obj = this;
答案 0 :(得分:5)
它只是存储this
对象的当前引用,以供将来使用。它很有用,因为this
的JS值取决于上下文。
答案 1 :(得分:3)
它保存了对当前上下文中this
的引用,因此可以在以后使用。
答案 2 :(得分:1)
它正在创建一个变量'obj'并将其设置为当前上下文。
因此,例如,如果它处于全局级别this
将是当前的DOM窗口。
答案 3 :(得分:1)
即设置当前设置的第一类函数的本地副本。
这在jquery中使用ALOT,因为当你使用选择器时它会有不同的含义。
说我有一个
function Person() {
this.name = "gnostus";
}
我需要从jquery选择器内部访问名称,这将成为一个html元素,我将我的对象存储到一个复制变量中,当我在里面时使用obj.name
代替this.name
jquery上下文。
答案 4 :(得分:1)
这取决于此声明的位置。它将变量“obj”赋值给当前对象。
例如,以下代码将打开一个警告窗口并显示[Window对象]。那是因为我们在正文区域检查“this”的值(不在任何对象事件处理程序中等)。
<html>
<head>
</head>
<body>
<script type="text/javascript">
alert(this);
</script>
</body>
</html>
答案 5 :(得分:0)
var obj = this;
正在陈述,将obj指定给当前范围的父级。
几个月前我首先阅读了这篇文章,以便处理关键字“this”。
http://justin.harmonize.fm/index.php/2009/09/an-introduction-to-javascripts-this/
答案 6 :(得分:0)
this关键字用于指代函数的所有者,或者使用this关键字的变量。 如需详细了解,请访问http://www.quirksmode.org/js/this.html
答案 7 :(得分:0)
我能想到的唯一上下文,这种代码有意义的地方是在闭包内使当前上下文(this)可用。
所以代码就像:
var obj = this;
setTimeout(function() {
obj.someMethod();
}, 1000);
这将在1秒钟后调用当前上下文对象上的方法“someMethod”。