Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #111 (permalink)  
Старый 07.01.2015, 14:55
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да, так работает во всех браузерах. Хз где про это прочитать, у Сошникова вроде нету.
Вообще с defineProperty много проблем, даже не в strict он может на некоторых Android 4 девайсах выкинуть can't redefine property для DOM элементов или свалиться на добавлении свойства функции.
Ответить с цитированием
  #112 (permalink)  
Старый 10.01.2015, 19:10
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 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.
Ответить с цитированием
  #113 (permalink)  
Старый 10.01.2015, 19:50
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Octane,
Цитата:
Разбирался как должны себя вести функции в ES6 в следующих случаях:
function f(x = g()) {…}
function f(x = function () {…}()) {…}
не это ли случайно искал http://dmitrysoshnikov.com/ecmascrip...of-parameters/ ?
Ответить с цитированием
  #114 (permalink)  
Старый 10.01.2015, 20:04
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Safort Посмотреть сообщение
Octane,

не это ли случайно искал http://dmitrysoshnikov.com/ecmascrip...of-parameters/ ?
О, я не знал про область видимости параметров, интересно
__________________
kobezzza
code monkey
Ответить с цитированием
  #115 (permalink)  
Старый 10.01.2015, 20:08
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

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

Последний раз редактировалось Octane, 10.01.2015 в 20:16.
Ответить с цитированием
  #116 (permalink)  
Старый 10.01.2015, 20:15
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)
Ответить с цитированием
  #117 (permalink)  
Старый 10.01.2015, 21:09
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Safort Посмотреть сообщение
kobezzza,
да, интересно придумали. Только вот теперь иногда придётся учитывать ещё одну область видимости)
После прочтения пошел смотреть как сделано в SS, и с радостью обнаружил, что в SS запрещено декларировать JS функции

- template foo(a = function () {}) // Ошибка
__________________
kobezzza
code monkey
Ответить с цитированием
  #118 (permalink)  
Старый 10.01.2015, 21:53
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

new function (x = () => this) {
  console.log(x() === this) // true
}
Ответить с цитированием
  #119 (permalink)  
Старый 13.01.2015, 11:25
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

6to5 + esnext
Ответить с цитированием
  #120 (permalink)  
Старый 13.01.2015, 11:34
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Safort Посмотреть сообщение
6to5 + esnext
Хороший пример, когда в нужное время появился качественный и нужный проект. Единственно, название они не оч удачно выбрали, т.к. со временем, когда ES6 станет стандартом, а ES7 будет внедрятся, понадобится 7to6 - с технической точки зрения у них всё ок, т.к. плагинная архитектура позволяет расширять функционал как угодно, но вот название может сбивать с толку.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 13.01.2015 в 11:37.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать HTML фичи? 2chan Events/DOM/Window 6 26.09.2014 18:50