首页 > 解决方案 > 执行 IIFE 后变量中的值错误(带有函数参数)

问题描述

在这个例子中,我传递foo.bar给一个 IIFE,它返回执行第一个参数。我正在传递一个被执行的函数,返回this(指向窗口)。

所以,return 存储在awhich should be 中window。那么,为什么它返回我的论点本身?

var foo = {
  bar: function() { 
    console.log("***", this);
    return this; 
  },
  baz: 1
};

var a = (function(){
  console.log("window?", this===window);
  return arguments[0](); 
})(foo.bar);

console.log("a", a);

标签: javascriptthisiife

解决方案


推荐阅读