Koncept pochodzi ze strony: http://toddmotto.com/polyfills-suck-use-a-featurefill-instead/
//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]';
};
})();