Да, так работает во всех браузерах. Хз где про это прочитать, у Сошникова вроде нету.
Вообще с defineProperty много проблем, даже не в strict он может на некоторых Android 4 девайсах выкинуть can't redefine property для DOM элементов или свалиться на добавлении свойства функции. |
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,
Цитата:
|
Цитата:
|
Я читал эту статью, но там ни слова про IIFE в дефолтных значениях, можно только догадываться что такая функция будет исполнена перед function body, так как значения вычисляются при каждом вызове функции, а не при декларации.
|
kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости) |
Цитата:
- template foo(a = function () {}) // Ошибка
|
new function (x = () => this) {
console.log(x() === this) // true
}
|
|
Цитата:
|
| Часовой пояс GMT +3, время: 08:45. |