Meow~

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 上次笔试遇到一个题目:

var a = {};
var b = {key:'b'};
var c = {key:'c'};

a[b] = 123;
a[c] = 456;

console.log(a[b]);

这里涉及到Object.prototype.toString.call()

原因是b是个对象,不能作为属性。这里要强制转换为String

Object.prototype.toString.call(b); //"[object Object]" 相当于 a["[object Object]"] = 123, a["[object Object]"] = 456 

扩展:

d=['1'];
a[d]=777; 
e=[];
a[e]=888;
f = [2,3];
a[f] = 999;
//a: Object {1: 777, [object Object]: 456, "": 888, 2,3: 999} 其中:a["2,3"] = 999

 

 

Object.prototype.toString.call()几乎是判断一个数据类型的最标准的方法。

比如:

typeof null   //结果是 object

 

我们此时使用:

Object.prototype.toString.call(null)  //结果是:"[object Null]"

 

posted on 2017-04-22 22:04  喵弟  阅读(602)  评论(0编辑  收藏  举报