为什么上下文会在这个JS片段中发生变化?

时间:2012-02-28 04:39:16

标签: javascript

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

function a() {
    document.write(this + '<br />');
}

a();
a.apply('hello');

var b = function() {
    a();
}
b.apply('hi');​

我希望最后一行输出'hi',而是输出窗口。

1 个答案:

答案 0 :(得分:0)

this在此背景下应为window

b()的{​​{1}}是this,但这不会继承/关联'hi'函数正文中的任何函数调用。这就是通过b()使用正常函数调用方法this调用a()b()内的()window