Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   JS.next(стандарты, фичи, движки) (https://javascript.ru/forum/offtopic/50248-js-next-standarty-fichi-dvizhki.html)

Safort 30.06.2015 00:21

FINoM,
а у тебя последняя версия Requirejs? Если да, то не вижу другого варианта, кроме как написать ишью.

Safort 10.07.2015 17:47

Exploring ES2016 Decorators

kobezzza 10.07.2015 18:03

Цитата:

Сообщение от Safort (Сообщение 378613)

Очень крутая фича.

Safort 10.07.2015 18:48

kobezzza,
давно юзаешь?

kobezzza 10.07.2015 18:57

Цитата:

Сообщение от Safort (Сообщение 378623)
kobezzza,
давно юзаешь?

Юзал в других языках, тут пока нет, т.к. в WS поддержки нормальной нет :(

kobezzza 22.07.2015 12:34

Паттерн для организации Partial классов:

base.js
export class Base {
  get() {
    return 1;
  }
}


child.js
import { Base } from 'base';
export class Child extends Base {
  
}


child-mixin.js
import { Child } from 'child';
extend(Child, /** @lends {Child.prototype} */ { // Аннотация для автокомплита в WS11 и GCC
  get() {
    return super.get(); // super работает
  }
});


Сама функция extend
function extend(Class, mixin) {
  mixin.__proto__ = Class.__proto__.prototype;
  for (let key in mixin) {
    Class.prototype[key] = mixin[key];
  }
}

Erolast 22.07.2015 14:15

Цитата:

obj.__proto__ = Class.__proto__.prototype;
__proto__ в ES6 существует только на правах legacy и только для браузеров, лучше использовать Object.setPrototype/Object.getPrototype.

Еще момент - неочевидно название переменной obj, я бы лучше methods назвал.

trikadin 22.07.2015 14:28

Цитата:

Сообщение от Erolast
__proto__ в ES6 существует только на правах legacy и только для браузеров, лучше использовать

Ноп, __proto__ теперь в стандарте.
https://developer.mozilla.org/ru/doc...s/Object/proto

И в той же ноде оно есть. Где ещё нужно-то?)

kobezzza 22.07.2015 14:30

Цитата:

__proto__ в ES6 существует только на правах legacy и только для браузеров, лучше использовать
Всё так, но __proto__ удобно юзать при объявлении литерала объекта и юзать можно смело, т.к. его не выпилят (т.к. стандартизировали это свойство именно в ЕС6), но в данном примере я просто накалякал по быстрому.

Главное тут было показать, как организовывать полноценные Partial классы с работой super и автокомплитом.

devote 22.07.2015 14:31

Цитата:

Сообщение от Erolast
__proto__ в ES6 существует только на правах legacy и только для браузеров

почему legacy ? насколько я помню свойство __proto__ вынули из раздела deprecated и стандартизировали в ES6.


Часовой пояс GMT +3, время: 15:11.