博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redux状态控制器
阅读量:5919 次
发布时间:2019-06-19

本文共 2006 字,大约阅读时间需要 6 分钟。

hot3.png

// 自执行创建模块    (function() {        // states 结构预览        // states = {        //     a: 1,        //     b: 2,        //     m: 30,        //     o: {}        // }        var states = {};  // 私有变量,用来存储状态与数据        // 判断数据类型        function type(elem) {            if(elem == null) {                return elem + '';            }            return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();        }        /**         * [@Param](https://my.oschina.net/u/2303379) name 属性名         * @Description 通过属性名获取保存在states中的值         */        function get(name) {            return states[name] ? states[name] : '';        }        function getStates() {            return states;        }        /*         * [@param](https://my.oschina.net/u/2303379) options {object} 键值对         * [@param](https://my.oschina.net/u/2303379) target {object} 属性值为对象的属性,只在函数实现时递归中传入         * [@desc](https://my.oschina.net/u/2009802) 通过传入键值对的方式修改state树,使用方式与小程序的data或者react中的setStates类似         */        function set(options, target) {            var keys = Object.keys(options);            var o = target ? target : states;            keys.map(function(item) {                if(typeof o[item] == 'undefined') {                    o[item] = options[item];                }                else {                    type(o[item]) == 'object' ? set(options[item], o[item]) : o[item] = options[item];                }                return item;            })        }        // 对外提供接口        window.get = get;        window.set = set;        window.getStates = getStates;    })()    // 具体使用如下    set({ a: 20 });     // 保存 属性a    set({ b: 100 });    // 保存属性b    set({ c: 10 });     // 保存属性c    // 保存属性o, 它的值为一个对象    set({        o: {            m: 10,            n: 20        }    })    // 修改对象o 的m值    set({        o: {            m: 1000        }    })    // 给对象o中增加一个c属性    set({        o: {            c: 100        }    })    console.log(getStates())

转载于:https://my.oschina.net/u/3407699/blog/1558138

你可能感兴趣的文章
Django中的Model继承
查看>>
源代码解读Cas实现单点登出(single sign out)功能实现原理--转
查看>>
EasyPR--一个开源的中文车牌识别系统3【转】
查看>>
poj3253
查看>>
属性编辑器,即PropertyEditor-->Spring IoC
查看>>
第二章——静态链接
查看>>
Centos下Yum安装PHP5.5,5.6
查看>>
模拟提交API数据Pyqt版
查看>>
sql语句中----删除表数据drop、truncate和delete的用法
查看>>
DEV控件之ChartControl用法 z
查看>>
ZooKeeper配置管理文件
查看>>
jQueryMobile示例页面代码
查看>>
05 入门 - 浅谈 ASP.NET MVC程序的工作原理
查看>>
oracle进制-10进制跟2进制互转
查看>>
微网站
查看>>
Java中获取完整的访问url
查看>>
DOCKER在windows上安装与配置
查看>>
代码自动生成工具_java版
查看>>
Tomcat 配置 默认应用 (去掉项目名称、移除项目名称)
查看>>
linux网络虚拟化
查看>>