• 【全站工程师练习笔记】Web前端 自定义JS对象 object_list


        function object_list(){
            return new object_list.fn.init(arguments);
        }
        object_list.fn = object_list.prototype = {
            constructor:object_list,
            init:function(args){
                this.useDefaultList = true;
                this.object = {};
                return this;
            }
        };
        object_list.fn.init.prototype = object_list.fn;
        object_list.prototype.clear = function(){
            var k = arguments[0];
            if (k && this.has(k)) {delete this.object[k];}
            else { this.object = {};}
        }
        object_list.prototype.push = function (k,v) {
            if (this.useDefaultList){
                if (!this.object[k]){
                    this.object[k] = new Array();
                }
                this.object[k].push(v);
            }else{
                if (!this.object[k]){
                    this.object[k] = v;
                }else{
                    var l = this.object[k];
                    var arr = new Array();
                    arr.push(l);
                    arr.push(v);
                    this.object[k] = arr;
                }
            }
            return this;
        };
        object_list.prototype.has =function(k){ return this.object[k] != undefined;};
        object_list.prototype.get = function(k){
            return this.object[k];
        };
        object_list.prototype.safe_get_call = function (k,target,_func_) {
            if (this.has(k)){
                _func_.call(this,k,this.get(k));
            }
        };
        object_list.prototype.get_with_default = function (k,d) {
            return this.has(k)?this.get(k):d;
        };
        object_list.prototype.for = function () {
            var f = arguments[0];
            var rstr= arguments[1] != undefined?arguments[1]:"";
            var r = (r.toLowerCase().indexOf("r") != -1 )? true:false;
            for (var k in this.object){
                if (!r){
                    f(k,0,this.object[k]);
                }else{
                    if (is_array(this.object[k])){
                        for (var j in this.object[k]){
                            f(k,j,this.object[k][j]);
                        }
                    }else{
                        f(k,0,this.object[k]);
                    }
                }
            }
        };
        object_list.prototype.for_with_target = function () {
            var f = arguments[0];
            var target = arguments[1];
            var rstr= arguments[2] != undefined?arguments[2]:"";
            var r = (r.toLowerCase().indexOf("r") != -1 )? true:false;
            for (var k in this.object){
                if (!r){
                    f(k,0,this.object[k]);
                }else{
                    if (is_array(this.object[k])){
                        for (var j in this.object[k]){
                            f.call(target,k,j,this.object[k][j]);
                        }
                    }else{
                        f.call(target,k,0,this.object[k]);
                    }
                }
            }
        };
        win.object_list = object_list;
  • 相关阅读:
    数据库数据格式化之Kettle Spoon
    NopCommerce开源项目中很基础但是很实用的C# Helper方法
    oracle 两个逗号分割的字符串 如何判断是否其中有相同值
    MongoDB+MongoVUE安装及入门
    C#中Dictionary<TKey,TValue>排序方式
    kettle的基本介绍
    Kettle能做什么?
    oracle like 条件拼接
    loading加载和layer.js
    关于bootstrap的treeview不显示多选(复选框)的问题,以及联动选择的问题,外加多选后取值
  • 原文地址:https://www.cnblogs.com/bluen/p/5480533.html
Copyright © 2020-2023  润新知