Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   JS.next(стандарты, фичи, движки) (https://javascript.ru/forum/offtopic/50248-js-next-standarty-fichi-dvizhki.html)

Octane 07.01.2015 14:55

Да, так работает во всех браузерах. Хз где про это прочитать, у Сошникова вроде нету.
Вообще с defineProperty много проблем, даже не в strict он может на некоторых Android 4 девайсах выкинуть can't redefine property для DOM элементов или свалиться на добавлении свойства функции.

Octane 10.01.2015 19:10

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 функции :(

Safort 10.01.2015 19:50

Octane,
Цитата:

Разбирался как должны себя вести функции в ES6 в следующих случаях:
function f(x = g()) {…}
function f(x = function () {…}()) {…}
не это ли случайно искал http://dmitrysoshnikov.com/ecmascrip...of-parameters/ ?

kobezzza 10.01.2015 20:04

Цитата:

Сообщение от Safort (Сообщение 350633)
Octane,

не это ли случайно искал http://dmitrysoshnikov.com/ecmascrip...of-parameters/ ?

О, я не знал про область видимости параметров, интересно :)

Octane 10.01.2015 20:08

Я читал эту статью, но там ни слова про IIFE в дефолтных значениях, можно только догадываться что такая функция будет исполнена перед function body, так как значения вычисляются при каждом вызове функции, а не при декларации.

Safort 10.01.2015 20:15

kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)

kobezzza 10.01.2015 21:09

Цитата:

Сообщение от Safort (Сообщение 350641)
kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)

После прочтения пошел смотреть как сделано в SS, и с радостью обнаружил, что в SS запрещено декларировать JS функции :)

- template foo(a = function () {}) // Ошибка

Octane 10.01.2015 21:53

new function (x = () => this) {
  console.log(x() === this) // true
}

Safort 13.01.2015 11:25

6to5 + esnext

kobezzza 13.01.2015 11:34

Цитата:

Сообщение от Safort (Сообщение 351150)

Хороший пример, когда в нужное время появился качественный и нужный проект. Единственно, название они не оч удачно выбрали, т.к. со временем, когда ES6 станет стандартом, а ES7 будет внедрятся, понадобится 7to6 - с технической точки зрения у них всё ок, т.к. плагинная архитектура позволяет расширять функционал как угодно, но вот название может сбивать с толку.


Часовой пояс GMT +3, время: 07:18.