zoukankan      html  css  js  c++  java
  • 给模型添加ORM,与持久化记录

    var Model = {
        inherited:function () {
        },
        created:function () {
        },
    
        prototype:{
            init:function () {
            }
        },
    
    
        //给类添加属性
        extend:function (obj) {
            var extended = obj.extended;
            for (var i in obj) {
                this[i] = obj[i];
            }
            if (extended) extended(klass);
        },
    
        //给实列添加属性
        include:function (obj) {
            var included = obj.included;
            for (var i in  obj) {
                this.prototype[i] = obj[i];
            }
            //触发回调
            if (included) included(klass);
        },
    
    
        create:function () {
            //子类 返回一个新对象,继承自model对象,创建新模型
            var object = Object.create(this);
            //指向父类
            object.parent = this;
            //子类原型方法
            object.prototype = object.fn = Object.create(this.prototype);
    
            object.created();
            this.inherited(object);
            return object;
        },
    
        init:function () {
            //返回一个新对喜爱那个,继承自model.prototype -> model对象的一个实例
            var instance = Object.create(this.prototype);
            instance.parent = this;
            instance.init.apply(instance, arguments);
            return instance;
        }
    
    }
    
    //保存资源对象
    Model.records = {};
    
    //持久化记录
    Model.include({
        newRecord:true,
        create:function () {
            this.newRecord = false;
            this.parent.records[this.id] = this;
        },
        destroy:function () {
            delete this.parent.records[this.id];
        },
        update:function () {
            this.parent.records[this.id] = this;
        },
        save:function () {
            this.newRecord ? this.create() : this.update();
        },
        find:function (id) {
            return this.records[id];
        }
    
    })
    
    //继承的父类model的一个构造函数
    var Asset = Model.create();
    
    //实例对象
    var asset1 = Asset.init();
    
    asset1.name = "Aaron-1";
    asset1.id = 1;
    asset1.save();
    
    var asset2 = Asset.init();
    
    asset2.name = "Aaron-2";
    asset2.id = 2;
    asset2.save();
    
    
    console.log(
        asset1
    )

  • 相关阅读:
    2020.4.13 机器学习相关数学基础
    2020.3.30 机器学习概述
    12.18语法制导的语义翻译
    12.11算符优先分析
    12.4自下而上语法分析
    11.27实验二 递归下降语法分析
    11.20LL(1)文法的判断,递归下降分析程序
    11.13消除左递归
    4.K均值算法--应用
    3.K均值算法
  • 原文地址:https://www.cnblogs.com/aaronjs/p/2654441.html
Copyright © 2011-2022 走看看