05.08.2014, 22:06
|
|
Профессор
|
|
Регистрация: 19.01.2010
Сообщений: 354
|
|
Я знаю что такое function expression. Зачем использовать такой способ, если есть более простой function declaration? С ним работает хойстинг, он лучше оптимизируется и сжимается.
|
|
05.08.2014, 22:14
|
|
Профессор
|
|
Регистрация: 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);
}
|
|
05.08.2014, 22:23
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
В ES5 FunctionDeclaration обязан быть либо вверху глобали, либо функции, т.е.
function foo() {
'use strict';
if (true) {
function bar() { // Error
}
}
}
В ES6 обсуждают концепцию локальных деклараций, а пока юзаю let + FunctionExpression если нужно такое.
Последний раз редактировалось kobezzza, 05.08.2014 в 22:35.
|
|
05.08.2014, 22:31
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от ixth
|
Какого черта ты не показал куда именно мне заглянуть?
|
какого чёрта ты такой наглый и не умеешь гуглить
http://javascript.ru/basic/functions
|
|
05.08.2014, 22:55
|
|
Профессор
|
|
Регистрация: 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;
}
}
|
|
05.08.2014, 22:59
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Да, но "вверху глобали" !== "выше в коде", так?
|
Ну имеется ввиду не может быть вложен в блок, там if и т.д.
Цитата:
|
Такой пример у меня нормально отрабатывает
|
Ну разумеется
|
|
05.08.2014, 23:02
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
ixth,
Цитата:
|
Такой пример у меня нормально отрабатывает
|
канешн отрабатывает, там же объявляется фанкшн внутри фанкшн, так дозволено делать.
|
|
05.08.2014, 23:38
|
|
Профессор
|
|
Регистрация: 19.01.2010
Сообщений: 354
|
|
Сообщение от bes
|
какого чёрта ты такой наглый
|
Патамучто я дольше на раене-на!
Спасибо, я знаю основы.
Я думал, возможно, есть какая-то особая магия, о которой я не знаю. Но судя по всему все делают, потому что Резиг так сказал. Но резюме отсюда немного отрезвляет, конечно.
|
|
05.08.2014, 23:39
|
|
Профессор
|
|
Регистрация: 19.01.2010
Сообщений: 354
|
|
Сообщение от kobezzza
|
Ну имеется ввиду не может быть вложен в блок, там if и т.д.
|
Отлично. Я привык, что функции внутри скоупа — как сноски, внизу.
|
|
06.08.2014, 16:51
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от melky
|
разница между TDD и BDD в том, какие сами тесты (синтаксис) и что они тестируют
|
может ты нам еще про разницу между unit & e2e расскажешь?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
|
|