Когда функциональность не поддерживается браузером, как я могу узнать, существует ли плагин polyfill или Babel? например: аксессоры - PullRequest
0 голосов
/ 28 августа 2018

Я вижу здесь , что геттеры не поддерживаются в IE.

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

1 Ответ

0 голосов
/ 29 августа 2018

Вы, должно быть, что-то неправильно поняли. На упомянутой вами странице написано, что геттеры / сеттеры поддерживаются начиная с IE 9 (поэтому должны быть также доступны в IE 11). Проверьте Совместимость браузера раздел.

Однако синтаксис get / set является просто синтаксическим сахаром над старым Object.defineProperty () . Например:

var bValue = 38;
var o = {
  get b () { return bValue; },
  set b (newValue) { bValue = newValue; }
}

равно:

var o = {}; // Creates a new object
var bValue = 38;
Object.defineProperty(o, 'b', {
  get() { return bValue; },
  set(newValue) { bValue = newValue; },
  enumerable: true,
  configurable: true
});
console.log(o.b); // 38

Итак, вы можете использовать это, если вам это действительно нужно.

Как указал Джаред Смит технически возможно обнаружить во время выполнения, поддерживается ли новый синтаксис с использованием eval (другой вариант - передать код в виде строки в new Function). В любом случае, это не лучший способ работы со старыми браузерами, поэтому, если вы хотите написать свой код с использованием синтаксиса ES6, но сможете использовать его в старых браузерах, используйте такие инструменты, как babel, которые будут правильно преобразовывать ваш код, поэтому поддерживаться старыми браузерами.

...