1 (function(toString) { 2 3 function isString(str) { 4 return typeof str === 'string' || toString(str) === '[object String]'; 5 } 6 7 function isNumber(num) { 8 return typeof num === 'number' || toString(num) === '[object Number]'; 9 } 10 11 function isArray(arr) { 12 return toString(arr) === '[object Array]'; 13 } 14 15 function isObject(obj) { 16 return toString(obj) === '[object Object]'; 17 } 18 19 function isFunction(fn) { 20 return toString(fn) === '[object Function]'; 21 } 22 23 })(Object.prototype.toString); 24 25