为什么这个JS代码段中的上下文会发生变化

Why does the context change in this JS snippet?

本文关键字:上下文 变化 段中 JS 代码 为什么      更新时间:2023-09-26

http://jsfiddle.net/raylu/C6Tkn/

function a() {
    document.write(this + '<br />');
}
a();
a.apply('hello');
var b = function() {
    a();
}
b.apply('hi');​

我希望最后一行输出"hi",但它输出窗口。

this旨在

在该上下文中window

b()this'hi'的,但这并不与b()函数体中的任何函数调用继承/关联。这就是为什么this当使用正常的函数调用方法(()(通过b()调用时a()内部是window