cachaito
12/2/2014 - 11:17 PM

Ciekawy sposób na tworzenie polyfillów

//zamiast wykrywać czy metody nie ma zaimplementowanej i zastępować ją swoją łatką
//tworzymy funkcję wykorzystującą natywną metodę jeśli jest a jeśli nie - używa polyfilla.

function isArray(collection) {
  if(Array.isArray) {
    return collection.isArray;
  }
  return Object.prototype.toString.call(arg) === '[object Array]';
}

//podejście to nie jest 100% efektywne bowiem za każdym razem wkonujemy test, czy metoda .isArray jest dostępna.
//Aby temu zaradzić używamy IIFE

var isArray = (function() {
  if(Array.isArray) {
    return Array.isArray;
  }
  return function (collection) {
    return Object.prototype.toString.call(collection) === '[object Array]';
  };
})();