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回答

好帮手慕星星

2018-09-25

Object.prototype对象上的toString方法可以用来判断数据类型。keyObject.prototype.toString.call(key)这样使用来判断key是否是Object类型,如果是,就将属性名和属性值添加上,最后调用的时候,添加的是小红的信息:

http://img.mukewang.com/climg/5ba9a30d00012e1909310044.jpg

自己测试理解下,祝学习愉快~~

0

0 学习 · 4826 问题

查看课程