Я понимаю, почему вам нужно использовать Object.prototype.toString ()
или String ()
для массивов проверки типов, но это не так. typeof достаточно для функций проверки типов и строк? Например, полифил в MDN для Array.isArray использует:
Object.prototype.toString.call(arg) == '[object Array]';
В случае массивов это довольно ясно, потому что вы не можете использовать typeof
для проверки массивов. Валентин использует для этого instanceof :
ar instanceof Array
Но для строк / функций / логических значений / чисел почему бы не использовать typeof
?
jQuery и Подчеркивание оба используют что-то вроде этого для проверки функций:
Object.prototype.toString.call(obj) == '[object Function]';
Разве это не эквивалентно выполнению этого?
typeof obj === 'function'
или даже этого?
obj instanceof Function