2014-02-16 3 views
2

Я знаю, что разница между этими двумя являются:Когда я должен использовать функцию уаг и когда функция

var myFunction = function(a) { ... } 
function myFunction2(a) { ... } 

Я просто не могу понять, когда я должен использовать первый и второй, когда один ,

Я видел это var functionName = function() {} vs function functionName() {}, но, как я уже сказал, я знаю, какая разница между этими двумя.

+0

@elclanrs, это НЕ !!!!!!!!! –

+0

Это может быть интересно: http://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/ – idmean

+1

Я не думаю, что это оправдывает дубликат, поэтому я проголосовал за закрытие , Разница заключается в подъеме, как указано в другом ответе, и что анонимные функции не имеют имени (duh). – elclanrs

ответ

1

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

var functionOne = function() { … } 
function functionTwo() { … } 

тогда functionOne не будет существовать в блоке до его определения, и определяется во время выполнения. В то время как другой вариант, functionTwo определяется во время разбора и может быть назван в любом месте программы. Другая вещь, которая меняется, - это поведение внутри функции.

Так в основном, ваш вопрос:

  • как я хочу размаху свою функцию?
  • если объем не имеет значения, предпочитаю ли я время выполнения или время синтаксического разбора?

Чтобы получить полные ответы на эти вопросы, я действительно советую вам прочитать и перечитать короткую книгу из Crockford "Javascript the good parts", и это выглядит как @ wumm-х suggested article довольно актуальна как хорошо.

+0

Я понимаю, что вы имеете в виду, однако я считаю, что термин «время разбора» здесь неверен. Исходный код JavaScript полностью разбирается в начале, однако в любом случае функции не существуют до тех пор, пока код не будет запущен. Разница заключается в том, что до того, как выполняется любая другая инструкция кода, оцениваются все объявления переменных и функций. –

Смежные вопросы