Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #301 (permalink)  
Старый 05.08.2014, 22:06
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Сообщение от Safort Посмотреть сообщение
ixth,
как-то так http://learn.javascript.ru/function-...ion-expression
Я знаю что такое function expression. Зачем использовать такой способ, если есть более простой function declaration? С ним работает хойстинг, он лучше оптимизируется и сжимается.
Ответить с цитированием
  #302 (permalink)  
Старый 05.08.2014, 22:14
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

ixth,
у меня пока что два варианта:
1. Хочется
2. Для оптимизации
Вот примерчик

//не оптимизированный вариант
  function fun(i) {  ...  }
  function fun2(i) {  ...  }

  for (var i = 0; i < мильён; i++) {

    if (условие) {
      fun(i);
    } else {
      fun2(i);
    }

  }




// оптимизорованный
  function fun(i) {  ...  }
  function fun2(i) {  ...  }

  var f;

  if (условие) {
    f = fun;
  } else {
    f = fun2;
  }

  for (var i = 0; i < мильён; i++) {
    f(i);
  }
Ответить с цитированием
  #303 (permalink)  
Старый 05.08.2014, 22:23
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

В ES5 FunctionDeclaration обязан быть либо вверху глобали, либо функции, т.е.

function foo() {
    'use strict';
    if (true) {
        function bar() { // Error
        }
    }
}


В ES6 обсуждают концепцию локальных деклараций, а пока юзаю let + FunctionExpression если нужно такое.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 05.08.2014 в 22:35.
Ответить с цитированием
  #304 (permalink)  
Старый 05.08.2014, 22:31
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от ixth
Какого черта ты не показал куда именно мне заглянуть?
какого чёрта ты такой наглый и не умеешь гуглить
http://javascript.ru/basic/functions
Ответить с цитированием
  #305 (permalink)  
Старый 05.08.2014, 22:55
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Сообщение от kobezzza Посмотреть сообщение
В ES5 FunctionDeclaration обязан быть либо вверху глобали, либо функции, т.е.

function foo() {
    'use strict';
    if (true) {
        function bar() { // Error
        }
    }
}


В ES6 обсуждают концепцию локальных деклараций, а пока юзаю let + FunctionExpression если нужно такое.
Да, но "вверху глобали" !== "выше в коде", так?

Такой пример у меня нормально отрабатывает:
function foo() {
    'use strict';
    var a = 1;

    return a + bar();

    function bar() {
        return 1;
    }
}
Ответить с цитированием
  #306 (permalink)  
Старый 05.08.2014, 22:59
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Да, но "вверху глобали" !== "выше в коде", так?
Ну имеется ввиду не может быть вложен в блок, там if и т.д.

Цитата:
Такой пример у меня нормально отрабатывает
Ну разумеется
__________________
kobezzza
code monkey
Ответить с цитированием
  #307 (permalink)  
Старый 05.08.2014, 23:02
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

ixth,
Цитата:
Такой пример у меня нормально отрабатывает
канешн отрабатывает, там же объявляется фанкшн внутри фанкшн, так дозволено делать.
Ответить с цитированием
  #308 (permalink)  
Старый 05.08.2014, 23:38
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Сообщение от bes Посмотреть сообщение
какого чёрта ты такой наглый
Патамучто я дольше на раене-на!



Сообщение от bes Посмотреть сообщение
и не умеешь гуглить http://javascript.ru/basic/functions
Спасибо, я знаю основы.

Я думал, возможно, есть какая-то особая магия, о которой я не знаю. Но судя по всему все делают, потому что Резиг так сказал. Но резюме отсюда немного отрезвляет, конечно.
Ответить с цитированием
  #309 (permalink)  
Старый 05.08.2014, 23:39
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Сообщение от kobezzza Посмотреть сообщение
Ну имеется ввиду не может быть вложен в блок, там if и т.д.
Отлично. Я привык, что функции внутри скоупа — как сноски, внизу.
Ответить с цитированием
  #310 (permalink)  
Старый 06.08.2014, 16:51
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от melky
разница между TDD и BDD в том, какие сами тесты (синтаксис) и что они тестируют
может ты нам еще про разницу между unit & e2e расскажешь?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смишных картинок тред megaupload Оффтопик 3447 03.07.2023 09:47
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Смешных историй тред monolithed Оффтопик 11 04.03.2015 04:20
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50