【发布时间】:2014-02-17 13:18:40
【问题描述】:
var name = "Bob";
var book = {
name: "Harry Potter",
writeName: function() {
return function() {
document.writeln(this.book.name);
}
}
};
当我调用它时
book.writeName()();
我希望它打印上面的 Harry Potter(不是 Bob),但是:
var book2 = book;
book = null;
book2.writeName()();
现在寻找this.book(即null)它应该在哪里寻找this.book2
如何引用变量?
【问题讨论】:
-
不要使用
this。 -
@Bergi 但是当我更改为 book2 时,它仍然在寻找 book
-
好的,抱歉,我必须细化:不要在不合适的地方使用
this,就像这里在返回的函数中this指的是全局对象:-)
标签: javascript variables scope