16.01.2015, 15:40
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza, спасибо
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
20.01.2015, 21:41
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
В ES7 планируется добавить специальный способ обращения к символьным свойствам объекта через ::, например,
foo::some()
Как по мне, то данная фича очень нужна и я считаю, что все встроенные свойства и методы Object.prototype должны быть продекларированы именно так, например,
for (let key in foo) {
if (foo::getOwnPropertyDescriptor(key)) {
...
}
}
Это уберёт потенциальные ошибки при использовании объекта, как таблицы.
function foo(params) {
if (params.toString) {
alert('ffffuuuuu');
}
}
foo({});
А вот если бы базовый метод toString был бы символьный и доступен через :: то такой бы ошибки не было, а проблемы совместимости старого кода можно решить флагом:
'use es7-strict';
По аналогии с useAsm и useStrict.
К слову, символьные свойства были введены как раз, чтобы можно было безопасно расширять прототипы объектов, в частности и Object.prototype.
Последний раз редактировалось kobezzza, 20.01.2015 в 21:43.
|
|
21.01.2015, 00:50
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
Какое-то lua, но через жопу, имхо. Проблема то понятна, как и необходимость решения, но вот само решение выглядит по мне как-то уродливо...
__________________
29375, 35
|
|
21.01.2015, 09:58
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Сообщение от kobezzza
|
В ES7 планируется добавить специальный способ обращения к символьным свойствам объекта через ::, например,
foo::some()
|
ведь Symbol.iterator === Symbol('iterator') → false , как тогда обращаться к символьным-свойствам, если я сделаю так:
let obj = {
[Symbol('some')]: 1,
[Symbol('some')]: 2
};
что должен вернуть obj::some ?
Скорее всего это просто короткая запись для
obj[Symbol.iterator] → obj::iterator
obj[Symbol.toStringTag] → obj::toStringTag
obj[Symbol.toPrimitive] → obj::toPrimitive
…
и т.д.
тоесть всегда на well-known symbols будет ссылаться
Последний раз редактировалось Octane, 21.01.2015 в 10:09.
|
|
21.01.2015, 10:12
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Octane, https://github.com/zenparsing/es-abstract-refs
PS: Перечитав драфт понял, что сам его не до конца понял Подождём пару лет, пока реализуют ES7
UPD: Прочитал https://github.com/zenparsing/es-function-bind и понял, что здесь работа не с символьными свойствами (как я изначально думал), а API для биндинга функций к объекту, т.е. сахар для паттерна заимствования.
Array.prototype.slice.call(...)
Если это так, то это вообще мегакруто, т.к. решает проблему расширения базовых объектов и даёт новый способ для code-reuse!
Последний раз редактировалось kobezzza, 21.01.2015 в 10:44.
|
|
23.01.2015, 01:06
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Перевидите на человеческий язык (то что выделенно) что за "шаблоны деструктуризации" ?
Цитата:
|
Так как «собственный» объект arguments не доступен внутри стрелочной функции (значение arguments лексически связано со значением arguments традиционной функции, внутри которой стрелочная функция была объявлена), то для стрелочных функций с переменным числом параметров нужно использовать rest-паттерн из шаблонов деструктуризации
|
var getTempItems = (...rest) => rest;
// эквивалент
var getTempItems = function() { return [].slice.apply(arguments) };
Еще не вкурю почему не работает
let params = {};
let { params: size = { height:50 } } = {
width: 100
};
В еs6 есть что то типо __proto__ или уже можно __proto__ юзать?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
Последний раз редактировалось cyber, 23.01.2015 в 01:41.
|
|
23.01.2015, 01:54
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
cyber,
оно делает работу с переменным количеством аргументов немного удобнее
Следующий пример сработает во всех нормальных браузерах, т.е. в панде.
var func = (a, ...others) => {
console.log(a, others);
};
func(1,2,4,5);
|
|
23.01.2015, 01:56
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
cyber,
Цитата:
|
В еs6 есть что то типо __proto__ или уже можно __proto__ юзать?
|
С этим у меня тоже путаница. В одной статье читал, что __proto__ стандартизировали, а в другой, что наоборот, отказались от него. Но если уж мы говорим о ES6, то зачем тебе вообще __прото__?)
|
|
23.01.2015, 02:18
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от Safort
|
Но если уж мы говорим о ES6, то зачем тебе вообще __прото__?)
|
Ну я ещё не решился на использование классов, а вообще просто интересно. Видел на mdn что оно поддерживается всеми браузерами, а ие 11+
И как включить поддержку arrow functions в хроме, я поставил флаг harmony и нефига
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
Последний раз редактировалось cyber, 23.01.2015 в 02:32.
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Как сделать HTML фичи? |
2chan |
Events/DOM/Window |
6 |
26.09.2014 18:50 |
|
|
|