Читая книгу Девида Фленегана наткнулся на такой код
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, то использовать ее, а если такой функции нет, то тогда уже определить собственную функцию для проверки.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости