Различия в JavaScript, определяющие функцию - PullRequest
3 голосов
/ 26 мая 2011

Я только что купил самую новую версию «JavaScript: Полное руководство», и у меня уже есть вопрос.: D

Семантически ли совпадают следующие строки:

var square = function(n){
                 return n * n;
             };

и

function square(n){
    return n * n;
}

Если да, каковы преимущества / недостатки использования любого из них?

Спасибо за помощь!

Ответы [ 3 ]

3 голосов
/ 26 мая 2011

Проверьте это:

a(); // prints 'A'

function a(){

    console.log('A');

};

и это:

b(); // throws error. b is not a function

var b = function() {

    console.log('B');

};

Вы заметили разницу?

3 голосов
/ 26 мая 2011

Да, они делают одно и то же.

Основным преимуществом первого подхода является то, что он дает вам ссылку на эту функцию, чтобы вы могли передать ее другой функции или прикрепить к объекту.если вам нужно.

0 голосов
/ 26 мая 2011

Разница в том, что в первом решении вы можете сделать это:

var square = function(n){
                 return n * n;
             };

// some code

square = function(n) { return n*n*n; }

у вас есть ссылка на функцию. С другой стороны, функция объявлена ​​статически.

Отказ от ответственности: нужен гуру JS, чтобы сказать мне, если я не прав =).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...