面试题答案
一键面试在严格模式下,上述代码中函数 test
内部的 this
指向 undefined
。
原因是:在严格模式下,函数调用时如果没有明确指定 this
的绑定对象(例如通过 obj.method()
这种对象方法调用方式,此时 this
绑定到 obj
;或者通过 call
、apply
、bind
方法指定 this
绑定),this
不会默认指向全局对象(在浏览器环境下是 window
,在Node.js环境下是 global
),而是保持为 undefined
。在给定代码中,test()
是直接调用,没有任何方式指定 this
的绑定对象,所以在严格模式下 this
为 undefined
。