15.05.2015, 23:15
|
Интересующийся
|
|
Регистрация: 12.02.2011
Сообщений: 16
|
|
в данном случае this это объект window. Да, это понятно. Спасибо, что поправил.
|
|
17.05.2015, 12:38
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Nikolay256
|
нативный js так не умеет
|
используй транслятор
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
17.05.2015, 12:53
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Сообщение от Nikolay256
|
function multiply(a, b = 1) {}
нативный js так не умеет
|
Просто ты сидишь с хромоподобного браузера, который этого ещё не поддерживает. Открой консоль FF и запусти там свой код - всё будет работать. Если хочешь поддержку во всех браузерах, то используй Babel.js.
|
|
17.05.2015, 14:23
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
fuckJS, забудь про with, ибо в стрикте он всё равно не работает.
__________________
29375, 35
|
|
19.05.2015, 10:15
|
Профессор
|
|
Регистрация: 28.05.2008
Сообщений: 182
|
|
typeof null === typeof {} === 'object' - в этом случае ты рискуешь впоследствии обратиться к null, как к объекту и при этом получить ошибку
С другой стороны
options = 1 , options ? options : {} тоже может дать неожиданный результат, если требуется объект с ограниченным набором возможных полей... обычно так бывает в универсальных методах, где объекты, например, копируются в цикле, а не по полям. Ну и остается риск перетереть поведение всего типа, если обращаешься где-нибудь к прототипу этого объекта. Я подобную ошибку случайно нашел в весьма крупном проекте, причем эта ошибка проявлялась только в IE и потому была трудно уловима. А ведь из-за нее мог грохнуться пользовательский интерфейс...
Я всегда делаю комплексную проверку typeof options === typeof {} && options ? options : {} - в этом случае всегда получишь объект.
Последний раз редактировалось demoniqus, 19.05.2015 в 10:22.
|
|
19.05.2015, 10:19
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
нативный js так не умеет
|
Это и есть нативный JS. Новая версия просто.
|
|
20.05.2015, 16:40
|
Интересующийся
|
|
Регистрация: 12.02.2011
Сообщений: 16
|
|
Цитата:
|
Это и есть нативный JS. Новая версия просто.
|
когда такую конструкцию утвердят основные браузеры, я его буду считать нативным, а пока считаю баловством.
Цитата:
|
options = 1 , options ? options : {} тоже может дать неожиданный результат, если требуется объект с ограниченным набором возможных полей... обычно так бывает в универсальных методах, где объекты, например, копируются в цикле, а не по полям. Ну и остается риск перетереть поведение всего типа, если обращаешься где-нибудь к прототипу этого объекта. Я подобную ошибку случайно нашел в весьма крупном проекте, причем эта ошибка проявлялась только в IE и потому была трудно уловима. А ведь из-за нее мог грохнуться пользовательский интерфейс..
|
ты имеешь ввиду перезапишется по ссылке? давай по подробнее) интересно, что за баг был
Последний раз редактировалось Nikolay256, 20.05.2015 в 16:42.
|
|
20.05.2015, 18:19
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
когда такую конструкцию утвердят основные браузеры, я его буду считать нативным, а пока считаю баловством.
|
Трансляторы для лохов?
Цитата:
|
ты имеешь ввиду перезапишется по ссылке?
|
alert(typeof null == "object");
|
|
20.05.2015, 19:30
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Erolast
|
Трансляторы для лохов?
|
тссс... не шумите. Не упрощайте людям жизнь
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.05.2015, 20:11
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Erolast,
Цитата:
|
Трансляторы для лохов?
|
Для отморозков слабых умом. Настоящие профи пишут на ES3. В одну строку.
Последний раз редактировалось Safort, 20.05.2015 в 20:18.
|
|
|
|