English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Краткое обсуждение различий в способах определения функций JavaScript

Существует два способа определения функций в JS:

(1) Традиционное объявление функции

function slide(arguments){
//...код
}

(2) Определение функции в виде функционального выражения

var slide = function(arguments){
//...код
}

Хотя这两种 методы логически эквивалентны, все же есть некоторые различия:

Отличие один:Функция в примере один будет загружена в область видимости до выполнения кода, а функция в примере два будет определена только в момент выполнения этого кода;

Отличие二号:Объявление функции assigns имя функции функции, в то время как функция выражения создает анонимную функцию и assigns ее переменной;

Посмотрите на следующий пример:

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. Надеюсь, вам это понравится и вы поддержите наш сайт!

Основной учебник
Вам может понравиться