我一直在进行JavaScript开发,遇到了这个问题。考虑以下代码
var obj = {};
obj.bind = function () {
console.info(this);
};
obj.bind();
我将在FireBug JavaScript控制台上运行代码。预期结果是
this
会在控制台中显示对对象的引用。实际上,它显示为
undefined
。但是,当我对我的代码进行以下更改时:
var obj = {};
obj.bind = function () {
this.x = 'x';
console.info(this);
};
obj.bind();
现在控制台显示了预期的值,即对
obj
对象的引用,这是为什么呢?涉及到this关键字的使用。
delete
删除变量。在控制台中有效,在外部无效。 - alexthis
写入obj.bind
中之前,附加一些字符串以确认它。我认为它显示的undefined
是obj.bind()
调用的返回值。 - Jeremy