3.constructor
constructor是对象上的属性,指向构造函数 let num = 123; console.log(num.constructor); //ƒ Number() { [native code] } console.log('abc'.constructor); //ƒ String() { [native code] } console.log(true.constructor); //ƒ Boolean() { [native code] } console.log([1,2,3].constructor); //ƒ Array() { [native code] } console.log({a:1,b:2,c:3}.constructor); //ƒ Object() { [native code] } console.log(function(){}.constructor); //ƒ Function() { [native code] } console.log(new Date().constructor); //ƒ Date() { [native code] } console.log(/^[a-z]{2,5}$/.constructor); //ƒ RegExp() { [native code] } console.log(Symbol().constructor); //ƒ Symbol() { [native code] }4.toString.call()
相当于 Object.prototype.toString.call console.log(toString.call(123)); //[object Number] console.log(toString.call('abc')); //[object String] console.log(toString.call(true)); //[object Boolean] console.log(toString.call(undefined)); //[object Undefined] console.log(toString.call(null)); //[object Null] console.log(toString.call([1,2,3])); //[object Array] console.log(toString.call({a:1,b:2,c:3})); //[object Object] console.log(toString.call(function(){})); //[object Function] console.log(toString.call(new Date())); //[object Date] console.log(toString.call(/^[a-z]{2,5}$/)); //[object RegExp]