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

nerv_ 01.10.2015 13:42

Цитата:

Сообщение от FINoM
просто не совсем тебя понимаю

вот и я не понимаю, поэтому спрашиваю, что она может дать в данной ситуации

одностороннее связывание
Цитата:

Сообщение от FINoM (Сообщение 390218)
class Foo {
  constructor() {
    magic.on(this, 'change:prop', evt => localStorage.prop = this.prop);
  }
}

двухстороннее
Цитата:

Сообщение от nerv_ (Сообщение 390211)
store.prop // читает из localStorage
store.prop = 1 // пишет в localStorage

или я чего-то не понимаю

FINoM 01.10.2015 13:46

nerv_, эм, а как ты акцессор на localStorage можешь навесить?

FINoM 01.10.2015 13:51

nerv_, теперь въехал. Туплю немного.

devote 01.10.2015 14:04

Цитата:

Сообщение от nerv_
не надо (на первый взгляд), т.к. arrow function

да, согласен.. по привычке уже машинально так делаю)

zig 04.10.2015 00:00

Цитата:

Сообщение от nerv_ (Сообщение 390211)
Цитата:

Сообщение от FINoM (Сообщение 390204)
А в каких задачах ты юзаешь акцессоры

много где :) Например, при работе с localStorage.

Допустим:
store.prop // читает из localStorage
store.prop = 1 // пишет в localStorage

э.. у меня оно точно так же работает из коробки, без всяких плясок с геттерами и сеттерами. это нормально? :blink:

trikadin 04.10.2015 00:29

zig, так тут прикол в том, что он не из LS читать хочет, а из свойства класса (которое читает/пишет в LS)

sortarray 04.10.2015 00:30

Цитата:

Сообщение от zig
э.. у меня оно точно так же работает из коробки, без всяких плясок с геттерами и сеттерами. это нормально?

Это имеет смысл, когда ты хочешь переопределить дефолтное поведение. Например:
objectWithStringInside = {string_: ""}

Object.defineProperty(objectWithStringInside, "string", {
  get: function(){return this.string_},
  set: function(value){if(typeof value === "string") this.string_ = value}
})

objectWithStringInside.string = "foo"
alert(objectWithStringInside.string)
objectWithStringInside.string = 1
alert(objectWithStringInside.string)
objectWithStringInside.string = "bar"
alert(objectWithStringInside.string)

nerv_ 19.10.2015 16:08

Хочу унаследоваться от ymaps.GeoObject.
Проблема - GeoObject подгружается/создается асинхронно.

Пишу
const {ymaps} = window;

// разумеется, ошибка GeoObject is undefined
class GeoObject extends ymaps.GeoObject {
}


Не соображу, как решить :)

---

Так работает
ymaps.ready(() => {
    class GeoObject extends ymaps.GeoObject {
        /**
         * @param {Object} [feature]
         * @param {Object} [options]
         * @see [url]https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/[/url]
         */
        constructor(feature, options) {
            super(feature, options);
        }
    };

    console.log('GeoObject', GeoObject);
});


но экспорт из модуля сделать не могу :(

Как быть?

trikadin 19.10.2015 18:58

nerv_, почему не можешь-то?

ymaps.ready(() => {
    export class GeoObject extends ymaps.GeoObject {
        /**
         * @param {Object} [feature]
         * @param {Object} [options]
         * @see [url]https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/[/url]
         */
        constructor(feature, options) {
            super(feature, options);
        }
    };
 
    console.log('GeoObject', GeoObject);
});

FINoM 19.10.2015 19:01

trikadin, эм. Можешь пояснить? Что происходит при импорте этого модуля? Скрипт "ждет" пока коллбек не сработает?


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