07.01.2015, 14:55
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Да, так работает во всех браузерах. Хз где про это прочитать, у Сошникова вроде нету.
Вообще с defineProperty много проблем, даже не в strict он может на некоторых Android 4 девайсах выкинуть can't redefine property для DOM элементов или свалиться на добавлении свойства функции.
|
|
10.01.2015, 19:10
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Immediately-invoked function expression (IIFE)
Разбирался как должны себя вести функции в ES6 в следующих случаях:
function f(x = g()) {…}
function f(x = function () {…}()) {…}
не нашел вменяемой информации, но вроде как этот блок с аргументами должен выполняться вместе с function body, но что интересно, наткнулся на название повсеместно применяемого приема:
(function () {
…
}());
(function () {
…
})();
!function () {
…
}();
new function () {
…
};
Immediately-invoked function expression (IIFE)
раньше только self-executing anonymous function встречал
------------------------------------------------
как-то я пропустил эту тему Self-invoking функции
Последний раз редактировалось Octane, 10.01.2015 в 19:34.
|
|
10.01.2015, 19:50
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Octane,
Цитата:
|
Разбирался как должны себя вести функции в ES6 в следующих случаях:
function f(x = g()) {…}
function f(x = function () {…}()) {…}
|
не это ли случайно искал http://dmitrysoshnikov.com/ecmascrip...of-parameters/ ?
|
|
10.01.2015, 20:04
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
О, я не знал про область видимости параметров, интересно
|
|
10.01.2015, 20:08
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Я читал эту статью, но там ни слова про IIFE в дефолтных значениях, можно только догадываться что такая функция будет исполнена перед function body, так как значения вычисляются при каждом вызове функции, а не при декларации.
Последний раз редактировалось Octane, 10.01.2015 в 20:16.
|
|
10.01.2015, 20:15
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)
|
|
10.01.2015, 21:09
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Safort
|
kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)
|
После прочтения пошел смотреть как сделано в SS, и с радостью обнаружил, что в SS запрещено декларировать JS функции
- template foo(a = function () {}) // Ошибка
|
|
10.01.2015, 21:53
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
new function (x = () => this) {
console.log(x() === this) // true
}
|
|
13.01.2015, 11:25
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
|
|
13.01.2015, 11:34
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Хороший пример, когда в нужное время появился качественный и нужный проект. Единственно, название они не оч удачно выбрали, т.к. со временем, когда ES6 станет стандартом, а ES7 будет внедрятся, понадобится 7to6 - с технической точки зрения у них всё ок, т.к. плагинная архитектура позволяет расширять функционал как угодно, но вот название может сбивать с толку.
Последний раз редактировалось kobezzza, 13.01.2015 в 11:37.
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Как сделать HTML фичи? |
2chan |
Events/DOM/Window |
6 |
26.09.2014 18:50 |
|
|
|