欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

JavaScript Object使用toString,objecttostring

来源: javaer 分享于  点击 28333 次 点评:62

JavaScript Object使用toString,objecttostring


今天偶然看到个js面试题目,问控制台输出信息是什么。

var a = {};
var b = {name:"ZS"};
var c = {};
c[a] = "demo1";
c[b] = "demo2";

console.log(c[a]);
console.log(c);


首先,a为空对象,b为name属性值为ZS的对象,c也为空对象;

之后,依次给c添加属性分别为a、b,值为demo1、demo2;

打印输出结果依次为:demo2(确实是demo2不是demo1);

                                       Object {[object Object]: "demo2"}。


疑惑的地方主要在于:第一行结果的demo2。

代码里的c[a]、c[b]隐式的将对象a,b使用了toString()方法进行了转换,然后再对属性赋值。


测试代码如下:

var a = {};
var b = {name:"ZS"};
var c = {
	"[object Object]":"demo"
	};
console.log(c[a]);//demo

c[a] = "demo1";   //这里接console.log(c);   输出为Object {[object Object]: "demo1"} 

c[b] = "demo2";   //这里接console.log(c);   输出为Object {[object Object]: "demo2"} 


console.log(typeof a);//object
console.log(a.toString());//[object Object]
console.log(a.toString() === b.toString());//true   说明返回值是一样的
console.log(c[a]);//demo2  被c[b]复写结果的缘故
console.log(b);//Object {name: "ZS"}
console.log(c);//Object {[object Object]: "demo2"}    


测试代码写到这里,结果就非常明显了。



                                        

相关文章

    暂无相关文章

用户点评