首页 > 解决方案 > 有人可以向我解释为什么“this”不等于以下javascript IIFE代码中的win或window吗?

问题描述

在下面执行这段代码时,结果是假的,为什么?“这个”与什么有关?我期望两个警报语句中的结果都是正确的

(function(win){

     alert("this == win: "+ this == win);         // false
     alert("this == window: "+ this == window);   // false

})(window);

标签: javascript

解决方案


这与这个不相等的窗口无关,这是一个操作顺序问题....

解析器看到的是这样的:

("this == win: "+ this) == win

添加正确的括号

(function(win){

     console.log("this == win: "+ (this == win));        
     console.log("this == window: "+ (this == window));   

})(window);


推荐阅读