有没有人可以解释下

新手上路,请多包涵
var A = 1;

(function A() {
    A = 2;
    console.log(typeof A);
    delete A;
    console.log(typeof A);
})();

阅读 2.2k
2 个回答

这是个立即执行的函数表达式(IIFE),但是同时也是个具名函数表达式(NFE)。

有两个特性:

- 函数名的标识符(A)只能从内部访问。
- 函数名的标识符(A)不可以再绑定其他值,即不可更改。

所以:

A = 2      //  无效
delelte A  //  无效

具体详情这里有讨论

推荐问题
宣传栏