ホームページ > 記事 > ウェブフロントエンド > JS 関数の定義方法の違いについての簡単な説明
JSで関数を定義するには2つの方法があります:
(1) 一般的な関数宣言
function slide(arguments){ //...code }
(2) 関数式の形式で関数を定義する
var slide = function(arguments){ //...code }
上記2つの方法ですが、論理的には同等ですが、いくつかの小さな違いがあります:
違い 1: 例 1 の関数はコードが実行される前にスコープにロードされますが、例 2 ではコードの実行時にスコープにロードされます。その行には定義があります。
違い 2: 関数宣言では関数に名前が割り当てられますが、関数式では匿名関数が作成され、その関数が変数に割り当てられます。例:
function factorial(num){ if(num<=1){ return 1; } else { return num*arguments.callee(num-1); } } var anotherFactorial = factorial; factorial = null; console.log(anotherFactorial);//输出factorial(){},有函数名
関数式で定義されている場合
var factorial = function(num){ //...code } //...code console.log(anotherFactorial);//输出function(){},匿名函数