Да, так работает во всех браузерах. Хз где про это прочитать, у Сошникова вроде нету.
Вообще с 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, время: 07:18. |