5-4 编程练习多层store结构如何实现的?

5-4 编程练习多层store结构如何实现的?

小伙伴们,我们学习了前面的知识 ,下面利用闭包特性来封装一个对象store,用来存储学生的信息,信息为姓名,年龄和性别,这些信息不可被外部直接访问,只能通过对象的方法获取或修改信息 

正在回答

登陆购买课程后可参与讨论,去登陆

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

同学可以参考一下上面的代码,其中你的第三步的疑问,在上面也给出了标注。建议同学再把整个面向对象课程再重新学习一下,看的出来你没有完全掌握,这个课程本来就是js中的重难点,不好理解,还是要反复琢磨,反复学习会学的更透彻。

如果帮助到了你,欢迎采纳!

Miss路 2018-08-19 13:48:33

具体哪里不明白请同学描述清楚哦,

可以参考一下思路引导:

1创建一个构造函数store,store中使用字面式定义一个空对象privateStore,用来存放私有的数据。

2. store 中定义一个函数_get,用来获取信息 。可获取全部的store信息,可获取某个人的全部信息, 可获取某个人的一项信息(比如年龄) 。

3. store 中定义一个函数_set , 用来添加或者修改信息。可以添加某个人的一项信息或者全部信息,可以对已有的信息进行修改

4. store 中定义一个方法get ,方法中返回函数_get。

5. store 中定义一个方法set, 方法中返回函数_set。

6.实例化对象store,并调用set方法添加学生的信息 。

l  添加一个学生的某一项信息:("小明" ,"age" ,23 )

l  添加一个学生的全部信息:("小强", {"age":23,"sex":"男"})

7.调用get方法输出已添加的所有信息。

如果帮助到了你,欢迎采纳。

  • 提问者 慕粉3350766 #1
    要实现这种添加:添加一个学生的全部信息:("小强", {"age":23,"sex":"男"}),前面3.store 中定义一个函数_set , 用来添加或者修改信息。可以添加某个人的一项信息或者全部信息,可以对已有的信息进行修改,该如何做?
    2018-08-19 16:32:51
  • 提问者 慕粉3350766 #2
    即 小强 "age":23,sex":"男,不是处于同一层次的,age":23,sex":"男 为 小强的子层次,前面对象该如何设置?
    2018-08-19 16:34:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师