English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JSの関数定義方法は以下の2種類があります:
(1)典型的な関数宣言
function slide(arguments){ //...コード }
(2)関数表現で関数を定義
var slide = function(arguments){ //...コード }
上記の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){ //...コード } //...コード console.log(anotherFactorial);//function(){}、アノニマス関数を出力
これで、編集者が皆さんに提供したJS関数定義方法の違いについての簡単な説明はすべて終わりました。皆さん、呐喊教程をたくさん応援してください~