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