Преимущество использования Object.create

Подобен, но отличается от этого вопроса . Приведенный ниже код взят из JavaScript: Полное руководство . Он в основном определяет метод наследования, который подчиняется Object.create, если он существует, в противном случае выполняет простое старое наследование Javascript, используя конструкторы и меняя местами прототипы.

У меня вопрос: поскольку Object.create не существует в многих распространенных браузерах IE, какой смысл даже пытаться его использовать? Это, безусловно, загромождает код, и один из комментаторов предыдущего вопроса упомянул, что Object.create не слишком быстр .

Так в чем же преимущество попытки добавить дополнительный код, чтобы время от времени использовать эту функцию ECMA 5, которая может быть медленнее, а может и не быть медленнее, чем "старый" способ сделать это?

function inherit(p) {
   if (Object.create) // If Object.create() is defined...
      return Object.create(p); // then just use it.

   function f() {}; // Define a dummy constructor function.
   f.prototype = p; // Set its prototype property to p.
   return new f(); // Use f() to create an "heir" of p.
}

10
задан Community 23 May 2017 в 12:15
поделиться