如果我有 IIFE,这是否指的是本地范围?
(function(){
    var $a;   
    $a = Su.$a
    // this.$a = Su.$a; // can I replace with this
})();
我问是因为我需要Su.$a在我的 IIFE 中随处可用。
但我不想打电话Su.$a,我想打电话$a。
和当 var 它是顶级作用域时说this.$a的一样吗?var $a
如果我有 IIFE,这是否指的是本地范围?
(function(){
    var $a;   
    $a = Su.$a
    // this.$a = Su.$a; // can I replace with this
})();
我问是因为我需要Su.$a在我的 IIFE 中随处可用。
但我不想打电话Su.$a,我想打电话$a。
和当 var 它是顶级作用域时说this.$a的一样吗?var $a
不。
this由MDN / thisOperator描述的一些东西设置,但简而言之:
obj, 执行时obj.func(...)obj, 当执行func.apply(obj, [...])orfunc.call(obj, ...)objis nullorundefinedfunc.prototype调用时带有原型的新对象new func(...)elem.addEventListener('event', func, ...)和event被触发elem较新的 JavaScript 中存在一些差异和添加,但仅此而已。  this与范围无关function。
不,它们是不同的。
var $a,则$a是函数范围内的局部变量。
但是如果你使用this.$a,因为这是一个自执行函数,this在window这种情况下,this.$a与 相同window.$a,所以你使用的是全局变量$a。