写在前面
在看这篇博客之前,以下几个知识点的学习有助于你的理解
JS进阶系列 — 原型
JS进阶系列 — call&apply
我们知道,在JS世界中,站在最顶端的人是Object。他颁布了JS的一个法令:toString,下面的人必须服从这个法令。但是不同的区域不同的民情,每个区域的Boss又重写了这个法令。
直接上代码
以下就是七大区域的Boss了,其中null和undefined因为没有拥护者
不能发布法令。
let cs1 = 111;
let cs2 = '111';
let cs3 = true;
let cs4 = null;
let cs5 = undefined;
let cs6 = {name:'xxx',age:12};
let cs7 = [1,2,3];
先看看他们颁布的法令(结果为string类型)
console.log('Number:' + cs1.toString()); //111
console.log('String:' + cs2.toString()); //111
console.log('Boolean:' + cs3.toString()); //true
console.log('Object:' + cs6.toString()); //[object Object]
console.log('Array:' + cs7.toString());//1,2,3
再看看Object对七大Boss颁布的原始法令(结果为string类型)
console.log('Number:' + ({}).toString.call(cs1)); //[object Number]
console.log('String:' + ({}).toString.call(cs2));//[object String]
console.log('Boolean:' + ({}).toString.call(cs3));//[object Boolean]
console.log('Null:' + ({}).toString.call(cs4));//[object Null]
console.log('Undefined:' + ({}).toString.call(cs5));//[object Undefined]
console.log('Object:' + ({}).toString.call(cs6));//[object Object]
console.log('Array:' + ({}).toString.call(cs7));//[object Array]