函数定义参数个数和调用个数以及顺序问题

来源:4-9 Storage封装

慕仔4607872

2021-02-20

图片描述图片描述老师,我有两个问题
①这个定义传三个形参,实际调用时传两个参数。这个前端语法学名是什么,如何规避不报错的。我想查资料了解下不知道怎么查。② 这种递归调用传的参数和定义的参数顺序是一致还是什么?module_name传给module_name?还是module_name对应key?这个递归是语法么?可能我这种传参没看懂,这种递归更让我晕头转向了,求解答

写回答

1回答

河畔一角

2021-02-24

你应该先跳出这个语法,先知道我们为什么封装storage,它主要的目地是什么,理解了以后,再来看这个方法就没问题了。

1、storage只是对浏览器localStorage的封装,原生的API使用也是localStorage.setItem和localStorage.getItem,分别是设置和保存,我们增加第三个参数的意思是,区分模块,如果没有模块划分,那你会把所有字段都存到storage里面,当多个项目公用的时候,显的极为混乱,我们关键是要按模块区分

storage.setItem("name","jack"),就会存入一个对象:{name:'jack'}

storage.setItem("age","30"),会继续存入一个对象:{age:30}

整个localStorage里面就会有两个对象:{name:'jack'},{age:30},当你的信息多的时候,就会平铺下去。

module_name解决的就是模块的问题

storage.setItem("name","jack","userInfo"),它的意思就是往userInfo下面存入一个对象:{userInfo:{name:'jack'}}

storage.setItem("age",30,"userInfo"),就是往userInfo下面继续存入一个对象:{userInfo:{name:'jack',age:30}}  

这是不是就能看懂了。

第一个setItem里面的递归之所以是this.setItem(module_name,val)是两个参数,是因为我们上面不是加了if(module_name)的判断,只有传了第三个参数,我们才会获取这个模块,然后进行存储

0
1
慕仔4607872
非常感谢!
2021-02-24
共1条回复

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程