5-4练习疑问
来源:5-4 编程练习
慕神7335987
2018-09-24 15:56:43
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>5-1</title>
</head>
<body>
<script>
var store=(function () {
var privateStore={};
return {
get:function(name,key){
if(key!==undefined){
return privateStore[name][key]
}else if(name!==undefined){
return privateStore[name]
}else{
return privateStore;
}
},
set:function(name,key,value){//这里就是第三步的意思。
if(name===undefined){
return;
}
var info=privateStore[name];
if(!info){
privateStore[name]={};
}
if(Object.prototype.toString.call(key)==='[object Object]'){
privateStore[name]=key;
}else if(key!==undefined && value!==undefined){
privateStore[name][key]=value;
}
}
}
})()
store.set("小明","age",23) //添加一个学生的某一项信息
store.set("小红",{"age":24,"sex":"女"}) //添加一个学生的全部信息
var info=store.get();
console.log(info)
</script>
</body>
</html>
if(Object.prototype.toString.call(key)==='[object Object]'){
privateStore[name]=key;
}
这一句是什么意思?
1回答
Object.prototype对象上的toString方法可以用来判断数据类型。keyObject.prototype.toString.call(key)这样使用来判断key是否是Object类型,如果是,就将属性名和属性值添加上,最后调用的时候,添加的是小红的信息:

自己测试理解下,祝学习愉快~~
相似问题