Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript函数表达式_Javascript_Function Declaration_Function Expression - Fatal编程技术网

JavaScript函数表达式

JavaScript函数表达式,javascript,function-declaration,function-expression,Javascript,Function Declaration,Function Expression,以下一行: var A = function def() {alert();}; 只有A调用该函数。def没有。为什么会这样?左侧不是函数delaration吗?在函数表达式中,函数名主要用于自调用。IRL此功能在匿名函数和递归调用(即 (function def() { // ... def(); })(); 好的,有道理。但是为什么def在这个问题上没有来自外部的影响,而如果使用函数def{}来定义它,它会有影响呢?@CharlesW。这是因为函数表达式的名称在其作用域之

以下一行:

var A = function def() {alert();};

只有A调用该函数。def没有。为什么会这样?左侧不是函数delaration吗?

在函数表达式中,函数名主要用于自调用。IRL此功能在匿名函数和递归调用(即

(function def() {
    // ...
    def();
})();

好的,有道理。但是为什么def在这个问题上没有来自外部的影响,而如果使用函数def{}来定义它,它会有影响呢?@CharlesW。这是因为函数表达式的名称在其作用域之外不可见。好的,谢谢!这也是为什么我们可以有很多匿名函数的原因吗?因为他们被限制在自己的范围内,所以没有冲突或歧义?