Mic*_*ael 5 javascript function
在Javascript中,声明函数的一种标准方法如下:
var add = function(a,b){
return a+b;
};
Run Code Online (Sandbox Code Playgroud)
但是,当我在语法的右侧重复函数名称时,我也没有错误.
var add = function add(a,b){
return a+b;
};
Run Code Online (Sandbox Code Playgroud)
第二种情况发生了什么?
functionJavascript 中关键字有两种用途:函数声明和函数表达式。函数声明不允许关键字左侧有任何内容,例如
function add(a,b){\n return a+b;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n他们总是需要一个名字,例如 add。同时,您的示例调用其他类型,函数表达式,它不需要名称(但可以命名!)并且 始终需要左侧的某些内容,例如您的
var add = function(a,b){\n return a+b;\n};\nRun Code Online (Sandbox Code Playgroud)\n\n甚至是一个括号:
\n\n(function(a,b){\n return a+b;\n})(1,2); // 3\nRun Code Online (Sandbox Code Playgroud)\n\n现在我们已经有了一些词汇,你在第二个例子中得到的内容,重印\xe2\x80\x94
\n\nvar add = function add(a,b){\n return a+b;\n};\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x94 是一个函数表达式(即变量赋值给add),其函数恰好名为。
现在,这个命名函数表达式的目的是什么?
\n\n它明确用于访问其自身内部的函数!根据MDN 的文档,
\n\n\n\n\n如果要在函数体内引用当前函数,则需要创建一个命名函数表达式。该名称仅适用于函数体(作用域)。
\n
让我们重命名你的adds ,这样我们就可以不那么混乱地谈论事情:
var abc = function xyz(a,b){\n return a+b;\n};\nRun Code Online (Sandbox Code Playgroud)\n\n上面,abc将在外部作用域中可访问,而xyz不会。同时,反之亦然:在内部作用域中将不可访问,而可以。abcxyz
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |