zoukankan      html  css  js  c++  java
  • 【全站工程师练习笔记】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;
  • 相关阅读:
    如何添加和删除本地存储中的数据?
    本地存储和cookies之间的区别是什么?
    那么如何使用WebSQL?
    WebSQL是HTML 5规范的一部分吗?
    WebSQL是什么?
    什么是本地存储的生命周期?
    本地存储和cookies之间的区别是什么?
    什么是多线程中的上下文切换?
    web workers是什么,为什么我们需要web workers?
    连接点?
  • 原文地址:https://www.cnblogs.com/bluen/p/5480533.html
Copyright © 2011-2022 走看看