备忘录

  • 保存对象的某个状态
    /**
     * 备份模板
     */
    function Memento(p)
    {
        //名字
        this.name  = p.name;
        
        //年龄
        this.age   = p.age;
        
        //性别
        this.sex   = p.sex;
        
        //财富
        this.money = p.money
    }
    
    
    
    /**
     * 人物
     */
    function Person()
    {
        
        //名字
        this.name  = '';
        
        //年龄
        this.age   = 0;
        
        //性别
        this.sex   = '男';
        
        //财富
        this.money = 0
        
        
        /**
         * 还原
         */
        this.recovery = function(p)
        {
            this.name  = p.name;
            this.age   = p.age;
            this.sex   = p.sex;
            this.money = p.money
        }
        
        
        /**
         * 备份
         */
        this.memento  = function()
        {
            return new Memento(this);
        }
    }
    
    
    /**
     * 历史备份
     */
    var data = [];
    
    
    //定义人物
    var person = new Person();
    person.name = '张三';
    person.money = 5000;
    
    
    //备份
    data.push(person.memento())
    
    
    //修改人物状态
    person.money = 100;
    
    
    //还原财富初始值
    person.recovery(data[0]);
    
    
    //测试
    console.log(person.money)  //输出:5000
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容