Читая книгу Девида Фленегана наткнулся на такой код
var isArray = Function.isArray || function(o) {
return typeof o === "object" &&
Object.prototype.toString.call(o) === "[object Array]";
};
Этот код по смыслу определяет функцию для проверки типа переменной на массив. Но я не понимаю зачем нужна вот эта штука:
Function.isArray ||
. Нуждаюсь в объяснении, в интернете поиски этого не увенчались успехом.
P.S Название для заголовка очень плохое и я понимаю, но ничего не могу с этим поделать.
Update:
@andreymal
он проникся то о чем я и спрашивал.Update 2:
Вообщем в следующей главе есть такой же код:
Array.join = Array.join || function(a,sep) {
return Array.prototype.join.call(a,sep);
};
Array.slice = Array.slice || function(a,from,to) {
return Array.prototype.slice.call(a,from,to);
};
Array.map = Array.map || function(a, f, thisArg) {
return Array.prototype.map.call(a, f, thisArg);
}
Этот код нужен для того чтобы определить собственные функции? И если они определены не переопределять? Тогда почему не написано так Array.prototype.join ||
, Array.slice = Array.prototype.slice ||
, Array.map = Array.prototype.map ||
?
Оператор ||
возвращает первый из операндов, булевское представление которого соответствует значению true
.
В коде вопроса переменная isArray
будет равна Function.isArray
, если Function.isArray
определена, или function(o) { ... }
- в противном случае.
var a;
var b = 123;
var c = 456;
var d = a || b;
console.log(d);
var e = b || c;
console.log(e);
var f = b || a;
console.log(f);
Этот код означает, что если есть стандартная функция Function.isArray, то использовать ее, а если такой функции нет, то тогда уже определить собственную функцию для проверки.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Если нужно выполнять какой-то код при изменении размера окна браузера, то повесим обработчик события resize на window:
Создаю клиентское приложение на React и ReduxИспользую Webpack