javascript:覆盖(而不仅仅是定义)if语句中的函数

javascript: overriding (not just defining) a function in if statement

本文关键字:语句 if 函数 定义 覆盖 不仅仅是 javascript      更新时间:2023-09-26

我有以下javascript。

var f = function() { ... };
if (x === 1) {
    // redefine f.
    f = function() { 
       ...
    };
}

这个代码有效吗?换句话说,我可以在if语句中重新定义一个javascript函数吗。

我很担心,因为:if/else语句中的函数声明?

是的,你可以做到。

f = function() { 
   ...
};

不是函数声明,它是函数expression(分配给f),所以其他问题中提到的问题不适用于此。

只有变量和函数声明被提升。