今天我发现当你在 Javascript 中将对象的方法作为函数传递时会发生一种相当奇怪的行为。
setTimeout(myObject.test, 100); // "this" is the global object window
方法“test”被正确调用,但“this”不是对象“myObject”,而是全局对象“window”。当我做这样的事情时,我可以获得预期的行为:
setTimeout(function(){myObject.test()}, 100); // "this" is myObject
这在我看来相当奇怪。谁能解释一下,为什么会这样。