zoukankan      html  css  js  c++  java
  • js中use或者using方法

    看Vue.use方法,想起了以前工作中别人用过的use方法。

    var YANMethod = {
        using:function() {
            var a = arguments, o = this, i = 0, j, d, arg, isExist;
            arg = a[0], isExist = a[1];
            if (arg && arg.indexOf('.')) {
                d = arg.split('.');
                for (j = (d[0] == 'YAN') ? 1 : 0; j < d.length; j++) {
                    if(!o[d[j]] && isExist) return null;
                    o[d[j]] = o[d[j]] || {};
                    o = o[d[j]];
                }
            } else {
                o[arg] = o[arg] || {};
            }
            return o;
        },
        /*--
            用新Cookie方法,但是兼容老的东西
            -ver 2014-04-22
        */
        cookie:function(name, value, options) {
            if(typeof value==='undefined'){
                return Cookie.get(name);
            }
            if(options){
                options.exp = typeof options.expires==='number' ? options.expires * 24 :
                    options.expires; //原来的cookie是按天算的
            }
            Cookie.set(name, value, options);
        },
        
        /**
         *JSON序列化,如果传入的是字符串则反序列化为对象;若传入的是对象则反序列化为字符串
         */
        json:function(value){
            if(typeof value==="string"){
                return this.jsontoObject(value);
            }else{
                return this.jsontoJSON(value);
            }
        },
        jsontoJSON:function(object){
            var type = typeof object;
            if ('object' == type) {
                if (Array == object.constructor) type = 'array';
                else if (RegExp == object.constructor) type = 'regexp';
                else type = 'object';
            }
            switch (type) {
                case 'undefined':
                case 'unknown':
                    return;
                break;
                case 'function':
                case 'boolean':
                case 'regexp':
                    return object.toString();
                break;
                case 'number':
                    return isFinite(object) ? object.toString() : 'null';
                break;
                case 'string':
                    return '"' + object.replace(/(\|")/g, "\$1").replace(/
    |
    |	/g, function() {
                        var a = arguments[0];
                        return (a == '
    ') ? '\n': (a == '
    ') ? '\r': (a == '	') ? '\t': ""
                    }) + '"';
                break;
                case 'object':
                    if (object === null) 
                        return 'null';
                    var results = [];
                    for (var property in object) {
                        var value = this.jsontoJSON(object[property]);
                        if (value !== undefined) 
                            results.push(this.jsontoJSON(property) + ':' + value);
                    }
                    return '{' + results.join(',') + '}';
                break;
                case 'array':
                    var results = [];
                    for (var i = 0; i < object.length; i++) {
                        var value = this.jsontoJSON(object[i]);
                        if (value !== undefined) 
                            results.push(value);
                    }
                    return '[' + results.join(',') + ']';
                break;
            }
        },
        
        jsontoObject:function(strjson){
            return eval("(" + strjson + ")");
        }
    };
    var addFunToYAN = function(functionName,func){
        if(typeof(func) == 'function')
            YAN[functionName] = func;
    };
    for(var m in YANMethod){
        if(typeof(YAN[m]) == 'undefined'){
            addFunToYAN(m,YANMethod[m]);
        }
    }
    $.extend(YAN.using("Plugin"),{
    
    });
    $.extend(YAN.using("Utils"),{
        getQuery:function(name){
              var paramList = location.search.replace("?","").split("&");
              for(var i = 0 ; i < paramList.length ; i++)
              {
                  if(paramList[i].split("=")[0] == name){
                      return paramList[i].substring(paramList[i].indexOf("=") + 1,paramList[i].length);
                  }
              }
              return null;
        }
    });
    var Plugin = YAN.using('Plugin');
    
    Plugin.AD = ad;
    Plugin.AD.getFlashAd();
    
    window.AD || (window.AD = YAN.using('Plugin').AD);
    

    Vue.use()

    http://www.cnblogs.com/dupd/p/6716386.html

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/coding4/p/7510867.html
Copyright © 2011-2022 走看看