JS ECMA6 - троичный оператор для обратной совместимости - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть фрагмент кода JavaScript, который использует свойство набора данных ECMA6 для доступа к атрибуту объектов data-foo элемента e. К сожалению, это не совместимо с <= IE10. Чтобы бороться с этим, я переписал свой код с использованием троичного оператора, используя набор данных, когда поддерживается, и getAttribute, когда нет: </p>

(e.dataset) ? e.dataset.foo : e.getAttribute('data-foo');

Но почему я не должен просто заменить всю строку на e.getAttribute('data-foo')? Какова реальная выгода от использования стандартов ECMA6, когда предыдущие стандарты столь же хороши и более широко поддерживаются?

1 Ответ

0 голосов
/ 04 сентября 2018

Прежде всего, свойство dataset не является частью спецификации ES6. Он является частью HTML spec .

Подойдя к вашему вопросу,

Каково реальное преимущество использования стандартов ECMA6, когда предыдущие стандарты столь же хороши и более широко поддерживаются?

Простота.

Как вы можете заметить, среди двух подходов e.dataset.foo и e.getAttribute('data-foo') первый является менее многословным и, следовательно, желательным во многих случаях. С одной стороны, это уменьшает размер файлов Javascript, которые вы отправляете.

В спецификации даже подчеркивается точка:

Атрибут IDL набора данных предоставляет удобные средства доступа для всех атрибутов data- * элемента. ...

[Выделение мое]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...