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(/\n|\r|\t/g, function() {
                    var a = arguments[0];
                    return (a == ‘\n‘) ? ‘\\n‘: (a == ‘\r‘) ? ‘\\r‘: (a == ‘\t‘) ? ‘\\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

时间: 2024-11-07 09:02:49

js中use或者using方法的相关文章

JS中setTimeout()的使用方法具体解释

1. SetTimeOut()              1.1 SetTimeOut()语法样例              1.2 用SetTimeOut()运行Function              1.3 SetTimeOut()语法样例              1.4 设定条件使SetTimeOut()停止              1.5 计分及秒的counter    2. ClearTimeout()    3.  Set Flag   10.1 setTimeout( )

60秒验证码倒计时js代码 js样式代码 方块上下左右随机移动(定时器) js中获取元素的方法 js中表单提交

60秒验证码倒计时js代码 <script type="text/javascript"> var countdown=60; function settime(val) { if (countdown == 0) { //removeAttribute() 方法删除指定的属性. disabled属性规定应该禁用 input 元素. val.removeAttribute("disabled"); val.value="免费获取验证码"

node.js中的url.parse方法使用说明

node.js中的url.parse方法使用说明 *方法说明:* 讲一个URL字符串转换成对象并返回 代码如下: url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) 接收参数: urlStr                                       url字符串 parseQueryString                   为true时将使用查询模块分析查询字符串,默认为false slashesDeno

js中object的申明方法

1 //js中的对象申明使用new Object(); 2 //object类型的数据类似于数组通过下表来访问其中的值 3 //example1 4 5 var person=new Object(); 6 person.name="张三"; 7 person.age="12"; 8 person.sex="男"; 9 10 for(var i in person){ 11 console.log(i+":"+person[i

JS中的对象和方法简单剖析

众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): Dates ,Maths,Regexps,Arrays,Funcitons,当然Objects,这些都是对象: JS中,所有值,除了原生值,都是对象:这些原生值包括:strings,numbers('3.14'),true,false,null和undefined 对象是包含变量的变量,js变量可

js 中读取JSON的方法探讨

方法一:函数构造定义法返回 var strJSON = "{name:'json name'}";  //得到的JSONvar obj = new Function("return" + strJSON)()  ;//转换后的JSON对象alert(obj.name);   //json name 方法二:js中著名的eval函数   //ie8及以下 无法使用var strJSON = "{name:'json name'}";//得到的JSO

JS中 call() 与apply 方法

1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply([thisObj[,argArray]])

JS中定义类的方法&lt;转&gt;

转载地址:http://blog.csdn.net/sdlfx/article/details/1842218 PS(个人理解): 1) 类通过prototype定义的成员(方法或属性),是每个类对象共有的,一般不用来定义成员属性,一个对象修改了属性值,所有对象均被修改: 2) 类拥有prototype属性,类对象没有: 3) 每次new类对象或直接调用类(以下工厂方法形式),都会把定义类(function)的语句执行一次(单例模式可以避免这个情况): 4) 类是function类型,类对象是o

JS中令人发指的valueOf方法介绍

彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下: 15.2.4.4 Object.prototype.valueOf ( ) When the valueOf method is called, the following steps are taken: 1. Let O be the result of calling ToObject passing the this value as the argument. 2. If O is

判断js中的数据类型的方法

在 判断js中的数据类型 我们通常会使用typeOf()方法,        typeof   2         输出   number      typeof   null       输出   object        typeof   {}      输出   object        typeof    []     输出   object        typeof   (function(){}) 输出  function        typeof    undefined