Показать сообщение отдельно
  #958 (permalink)  
Старый 22.03.2015, 11:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

О, я таки вкурил абстрактные ссылки из ES7.

Оператор "." работает слева-направо, т.е. мы вызываем метод/свойство от экземпляра, а новый оператор "::" работает справа-налево, т.е. это метод/свойство адаптируется пол наш экземпляр, т.е. по сути это сахар для паттерна заимствование:

Array.prototype.forEach.call(myObject, function () {
    ...
});


А теперь вуаля, покажу пример использования моего Collection с абстрактными ссылками:

import 'collection.js';

var a = [1, 2, 3]::map((el) => el ** 2)
var b = {a: 1, b: 2}::map((el) => el ** 2)
var c = new Map([[1, 2], [2, 3]])::map((el) => el ** 2)


Т.е. необходимость использовать конструктор $C отпадает, красота! И при этом мы не гадим в Object.prototype, т.е. такое расширение абсолютно безопасно.
__________________
kobezzza
code monkey
Ответить с цитированием