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

cyber 27.01.2015 23:08

Цитата:

Сообщение от bes
а лучше ещё дублировать текстом, так как твой скрин через некоторое время пропадёт навсегда

не, он лежит у меня на гугл фото, я из него хостинг картинок сделал:D
Разве что гугл закроет этот сервис)

bes 27.01.2015 23:13

Цитата:

Сообщение от cyber
не, он лежит у меня на гугл фото, я из него хостинг картинок сделал
Разве что гугл закроет этот сервис)

память закончится, думаю, удалишь :)

cyber 27.01.2015 23:47

Цитата:

Сообщение от bes
память закончится, думаю, удалишь

за 2 года 6% использовал из 15 гиг:D
Так что это будет очень не скоро, а если и кончится то куплю еще)

bes 27.01.2015 23:49

Цитата:

Сообщение от cyber
за 2 года 6% использовал из 15 гиг
Так что это будет очень не скоро, а если и кончится то куплю еще)

ну тогда пости больше полезных картинок :)

nerv_ 28.01.2015 00:22

Цитата:

Сообщение от kobezzza
В 6to5 добавят опциональную декларацию типов из ES7!

https://github.com/6to5/6to5/issues/260

Ты уже юзал? Есть примеры кода?

FINoM 28.01.2015 11:34

Позвольте эту интереснейшую тему разбавить практическим вопросом: http://javascript.ru/forum/misc/5328...t-modulya.html

kobezzza 28.01.2015 11:38

Цитата:

Сообщение от nerv_ (Сообщение 353802)
Ты уже юзал? Есть примеры кода?

Я игрался, но в реальной жизни пока не юзаю, т.к. синтаксис не утверждён + чтобы заменить jsDoc нужно аналоги TypeUnion из TS, а их нет (надеюсь пока).

nerv_ 28.01.2015 14:35

Как написать этот код
function Cat() {}

Cat.meow = (function() {
    var hidden = 1;
    return function() {
        return hidden;
    };
}());

alert(Cat.meow());

на es6? Начал так
class Cat {
    static meow() {
        // ... ?
    }
}

melky 28.01.2015 15:07

Цитата:

Сообщение от nerv_ (Сообщение 353892)
Как написать этот код
function Cat() {}

Cat.meow = (function() {
    var hidden = 1;
    return function() {
        return hidden;
    };
}());

alert(Cat.meow());

на es6? Начал так
class Cat {
    static meow() {
        // ... ?
    }
}

это вроде как ES7 - property initializer? поправьте, если ошибся

nerv_ 28.01.2015 15:50

Цитата:

Сообщение от melky
это вроде как ES7 - property initializer? поправьте, если ошибся

Я тебя не понял) Это стандартный es6.

nerv_ 29.01.2015 17:50

из огорчений

// не работает. Нельзя наследовать от стандартных объектов
class My extends Map {

}

// свойства в прототипе через данный сикнтаксис не поддерживаются
class My {
    property {
        foo: 1
    }
}

melky 29.01.2015 18:06

nerv_, да погоди ещё до ES7, допилят :)

nerv_ 29.01.2015 20:50

Цитата:

Сообщение от melky
да погоди ещё до ES7, допилят

так 100 лет ждать можно и не дождаться :)

Из приятного - почти завершенная сборка ангуляр-модуля https://yadi.sk/i/U2ZNOwvweKxQ6

Очень понравился spread. Вот так выглядит функция, обеспечивающая частичное применение функции https://yadi.sk/i/i2bNukOjeKxVH

Модули рулят)

Octane 29.01.2015 20:56

nerv_, конкат можно заменить на [...arguments_, ..._arguments]

Octane 29.01.2015 21:06

Помоему вообще fn(...arguments_, ..._arguments) должно работать, не на чем сейчас попробовать

nerv_ 29.01.2015 21:37

Цитата:

Сообщение от Octane
Помоему вообще fn(...arguments_, ..._arguments) должно работать, не на чем сейчас попробовать

работает :)

Safort 30.01.2015 00:12

nerv_,
Цитата:

так 100 лет ждать можно и не дождаться
пацаны базарили, что семёрка выйдет быстрее, чем шестёрка, т.к. работа над ней уже начата.

Erolast 30.01.2015 09:44

Цитата:

Нельзя наследовать от стандартных объектов
Можно, просто не транслируется
Цитата:

Сообщение от 6to5.org/docs/usage/caveats
Built-in classes such as Date, Array, DOM etc cannot be properly subclassed due to limitations in ES5.


Цитата:

Не понимаю, почему нельзя было сделать в ES6 так, как в TS?
https://yadi.sk/i/e6dNr8wMeHEbq Нет private & public (точнее паблик есть, но неявный)
...
свойства в прототипе через данный сикнтаксис не поддерживаются
К формату определения свойств прототипа еще не пришли. Я пока делаю так:
class ArticleContentView extends Marionette.ItemView {}

Object.assign(ArticleContentView, {
  el: "#article-content",
  template({content}) {return content}
});

nerv_ 30.01.2015 11:03

Цитата:

Сообщение от Erolast
Можно, просто не транслируется

Транслируется. Когда запускаю пишет, что конструктор должен вызываться с оператором new. Надеюсь, в нативном es6 появится такая возможность. На данный момент обошелся промежуточным классом.

Цитата:

Сообщение от Erolast
К формату определения свойств прототипа еще не пришли

Даже не знаю, хорошо это или плохо. Что касается "модификторов" private & public, лично мне удобно, когда они есть, в связи с чем неявный паблик немного настораживает. Про приват молчу... Его нет - беда. Я понимаю, что модули и все такое, но это же удобно, это harmony :)

Вместе с тем, существующие на данный момент class + extends + super + static уже многое значат. Код стал читабельней в разы.

Safort 30.01.2015 13:59

nerv_,
Цитата:

Про приват молчу... Его нет - беда.
А Symbols уже смотрел? Мб они тебе подойдут.

Erolast 30.01.2015 15:56

Цитата:

Транслируется. Когда запускаю пишет, что конструктор должен вызываться с оператором new.
Я имел в виду "не транслируется корректно".
Цитата:

Что касается "модификторов" private & public, лично мне удобно, когда они есть, в связи с чем неявный паблик немного настораживает. Про приват молчу... Его нет - беда.
https://people.mozilla.org/~jorendor...reserved-words

Octane 30.01.2015 15:58

Цитата:

"Announcement: ES6 class method syntax makes a non-enumerable property of the method's name on the class prototype." via @BrendanEich \o/

----
хм а 6to5 это уже умеет

Safort 22.02.2015 00:37

Посоны упоролись, не?)
https://esdiscuss.org/topic/extends-null
class C extends null {
}

Octane 22.02.2015 00:50

Что тебя смущает?) Вполне логичный аналог Object.create(null) для нового синтаксиса.
Тем более class Foo {} тоже самое, что class Foo extends Object {}

Safort 22.02.2015 09:18

Octane,
да просто наследование от нуля забавно выглядит)

FINoM 22.02.2015 13:07

А почему в классах не добавили возможность объявлять свойства?
class A {
  a: 33
}

Safort 22.02.2015 14:22

FINoM,
добавили.
class A {
  constructor() {
    this.a = 33;
  }
  static A = 'Static A';
}

let b = new A();
console.log(b.a);
console.log(A.A);

FINoM 22.02.2015 15:50

Safort, я в курсе, что в конструкторе можно их объявить. Просто непонятно, почему "прототипный стиль" назвали антипаттерном. Мне не всегда хочется вызывать super, чтоб объявить свойства.

FINoM 22.02.2015 16:07

Можно ли как-то сделать импорт text/plain, не прибегая к XHR?

nerv_ 22.02.2015 16:12

Цитата:

Сообщение от Safort
А Symbols уже смотрел? Мб они тебе подойдут.

Не сомневаюсь, что подойдут. Я хотел сахарный синтаксис с private

nerv_ 22.02.2015 16:13

Цитата:

Сообщение от FINoM
Можно ли как-то сделать импорт text/plain, не прибегая к XHR?

А зачем?)

Цитата:

Сообщение от Safort
добавили

нифига не добавили. В твоем примере будет свойство конструктора, а не экземпляра. (я про статик)

Цитата:

Сообщение от FINoM
Мне не всегда хочется вызывать super, чтоб объявить свойства.

а я всегда так делал, еще до использования es6 =)

FINoM 22.02.2015 16:15

Цитата:

Сообщение от nerv_
А зачем?)

Я привык пользоваться AMD, с ним можно запрашивать что угодно.

nerv_ 22.02.2015 16:17

Цитата:

Сообщение от FINoM
Я привык пользоваться AMD, с ним можно запрашивать что угодно

в es6 ввели import/export

FINoM 22.02.2015 16:21

Цитата:

Сообщение от nerv_
в es6 ввели import/export

Вот с ними бы мне хотелось бы запрашиапть text/plain.

Safort 22.02.2015 16:23

nerv_,
Цитата:

нифига не добавили. В твоем примере будет свойство конструктора, а не экземпляра. (я про статик)
А, всё, понял про что вы. Но с другой стороны, это же класс, если нужны свойства экземпляра - берите {property: 'значение'}

Safort 27.02.2015 17:33

ES6 Class syntax is starting to land in FirefoxNightly
Ждём-с)

kobezzza 27.02.2015 18:03

Цитата:

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

Ну вот, а ты ругал разрабов ФФ :)

Safort 27.02.2015 18:08

kobezzza,
конечно ругался, а как же иначе? А то они совсем расслабились)

Octane 27.02.2015 20:49

Помимо реализации static свойств, Babel еще куда-нибудь может добавить __proto__?

nerv_ 01.03.2015 20:33

Как написать итератор, который будет работать в цикле for ... of?
Этот код не работает
function makeIterator(array){
    var nextIndex = 0;

    return {
        next: function(){
            return nextIndex < array.length ?
            {value: array[nextIndex++], done: false} :
            {done: true};
        }
    }
}

var iterator = makeIterator([1,2,3]);

for(var key of iterator.next()) {
    console.log(key);
}

Пример итератора взят отсюда https://developer.mozilla.org/en-US/...rator_examples

upd: понял
function makeIterator(array){
    var nextIndex = 0;

    function next() {
        return nextIndex < array.length ?
        {value: array[nextIndex++], done: false} :
        {done: true};
    }

    return {
        [Symbol.iterator]: function() {
            return {
                next: next
            };
        },
        next: next
    }
}

var iterator = makeIterator([1,2,3]);

for(var key of iterator) {
    console.log(key);
}

https://developer.mozilla.org/ru/doc...rator_protocol


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