【发布时间】:2014-05-28 23:53:54
【问题描述】:
我想知道和理解 this 和 that 之间的区别,以及何时必须使用它。 我准备了很多帖子和很多教程,但我还不明白
这是我的课
function Container(param) {
function dec() {
if (secret > 0) {
secret -= 1;
return true;
} else {
return false;
}
}
this.member = param;
var secret = 3;
var that = this;
this.service = function () {
console.log(this.member); // foo
console.log(that.member); // foo
return dec() ? that.member : null;
};
}
新的
var myContainer = new Container('foo');
myContainer.service()
调用myContainer.service() 将在前三次调用时返回“abc”。
之后,它将返回 null
为什么我必须这样做var that = this ??
【问题讨论】:
-
你试过没有
that看看会发生什么?可能是了解正在发生的事情的好方法。 -
在您的示例中,我看不到
that的需要。试试var s = myContainer.service; s(),看看有/没有that会发生什么。 -
@CoderDennis 是的,它可以工作
标签: javascript