在严格模式下,this
将保持他进入执行环境时的值:
function mf(){
"use strict"; // 这里是严格模式 return this; } f() === undefined; // true window.mf() === window; //true
在严格模式下,如果 this
没有被执行环境定义,那它将保持为 undefined
。
因为f
是被直接调用的,而不是作为对象的属性或方法调用的(如 window.mf()此时返回window
)。
有一些浏览器最初在支持严格模式时没有正确实现这个功能,于是它们错误地返回了window
对象。