前端架构
//1、声明
//只读常量 const
//全局变量 var
//局部变量 let
//2、赋值
//2.1、按照对应位置,对变量赋值
let [a, b, c] = [1, 2, 3];
//2.2、Set 结构,也可以使用数组的解构赋值
let [x, y, z] = new Set(['a', 'b', 'c']);
//2.3、解构不仅可以用于数组,还可以用于对象
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
//3、对象拓展
const o = {
    method() {
        return "Hello!";
    }
};
//4、Set 它类似于数组,但是成员的值都是唯一
//4.1、Set本身是一个构造函数,用来生成 Set 数据结构
const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for (let i of s) {
    console.log(i);
}
// 2 3 5 4
//4.2、初始化
const set = new Set([1, 2, 3, 4, 4]);  
function _f(o) {
    console.log("调用call:" + o);
}
class Ajax {
    constructor(host) {
        this.host = host;
    }
    get(api) {
        console.log(this.host + api);
    }
    func(o) {
        _f.call(this, o);
    }
}
//Object.assign 方法向类添加多个方法
Object.assign(Ajax.prototype, {
    post(api) {
        console.log(this.host + api);
    }
});
var ajax = new Ajax("http://microsoft-zh.com.cn");
ajax.get("/api/open/user.get");
ajax.post("/api/open/user.login");
ajax.func("调用");
class utils {
    //静态方法
    static print(x) {
        console.log(x);
    }
}
utils.print(1);
/*立即执行*/
//方式一
(function () {
    console.log('Welcome to the Internet.');
})();
//方法二
(() => {
    console.log('Welcome to the Internet.');
})();
//方法三
let func = new class {
    constructor(name) {
        this.name = name;
    }
    getName() {
        console.log(this.name);
    }
}("名字")
func.getName();
/*类继承*/
class util extends utils {
    constructor() {
        super();
    }
}
util.print(2);
//json2.js
if (typeof JSON !== 'object') {
    JSON = {};
}
(function () {
    "use strict";
    var version = "1.1.0";
    if (typeof JSON.stringify !== "function") {
        JSON.stringify = function (value, replacer, space) {
        }
    }
    if (typeof JSON.parse !== "function") {
        JSON.parse = function (text, reviver) {
        }
    }
}());
//jQuery
(function (window, undefined) {
    "use strict";
    var version = "1.1.0";
    var jQuery = function (selector, context) {
    }
    jQuery.fn = jQuery.prototype = {
    }
    window.jQuery = window.$ = jQuery;
})(window)
//vue.js
'use strict';
function Vue(options) {
    this._init(options);
}
Vue.version = '1.1.0';
function initUse(Vue) {
    Vue.use = function (plugin) {
    }
    return this
}
function initExtend(Vue) {
    Vue.extend = function (extendOptions) {
    }
    return this
}
initUse(Vue);
initExtend(Vue);
//require.js
var require, define;
(function (global) {
    var req;
    req = function () { }
    define = function (name, deps, callback) { }
    req.version = "1.1.0";
    req.config = function (config) { }
    if (!require) {
        require = req;
    }
}(this));
//socket.io.js、redux.js
(function (root, factory) {
    root["io"] = factory();
})(this, function () {
    'use strict';
    return (function (modules) {
        function __webpack__(moduleId) {
            return {};
        }
        return __webpack__(0);
    })
});
//lodash.js
(function () {
    function lodash(value) {
        return value instanceof LodashWrapper
            ? value
            : new LodashWrapper(value);
    }
    function LodashWrapper(value, chainAll) {
    }
    var version = "1.1.0";
}.call(this));
//react.js
(function () {
    'use strict';
    function useCallback(callback, inputs) {
    }
    var React = {
        useCallback:useCallback
    }
    //冻结一个对象,防止对象被修改
    var react = Object.freeze({
        default: React
    });
    module.exports = react;
})();
//jquery.jplayer.js
(function (root, factory) {
    factory(root.jQuery);
}(this, function ($, undefined) {
    $.fn.jPlayer = function (options) {
    }
    $.jPlayer = function (options, element) {
    }
})
//lib.js
        (function (global, factory) {
            global["lib"] = factory();
        })(window, function () {
            "use strict";
            function lib() {
            }
            var libPrototype = lib.prototype;
            return lib;
        });
        //webim.js
        var webim = {
            /* function login
             *
             * params
             *  info
             *  listeners
             *  options
             * return
             *  (无)
             */
            login: function (info, listeners, options) { },
            /* function logout
             *
             * params
             *  cbOk
             *  cbErr
             * return
             *  (无)
             */
            logout: function (cbOk, cbErr) { }
        }
        (function (webim) {
            //第一步:声明全局常量
//第二步:创建工具类
//第三步:声明对象 => 实现对象
            //sdk版本
            const sdk = {
                version: '1.7.2',
                appid: '537048168',
                plaatform: "10"
            };
            //后台接口主机
            const srvhost = {
                formal: {
                    common: 'https://webim.tim.qq.com',
                    pic: 'https://pic.tim.qq.com'
                }
            };
            var tool = new function () {
                //格式化时间戳
                this.formatTimeStamp = function (timestamp, format) { };
                //将空格和换行符转换成HTML标签
                this.formatText2Html = function (text) { };
                //将HTML标签转换成空格和换行符
                this.formatHtml2Text = function (html) { };
                //判断浏览器版本
                this.getBrowserInfo = function () { };
            };
            //日志对象
            var log = new function () {
            };
            //发起ajax请求
            var ajaxPost = function (meth, url, req, timeout, content_type, isLongPolling, cbOk, cbErr) {
            };
            var ajaxGet = function (meth, url, req, timeout, content_type, isLongPolling, cbOk, cbErr) {
            };
            //上传文件
            var uploader = new function () { };
            webim.tool = tool;
            webim.log = log;
            webim.login = webim.init = function (info, listeners, opts) { };
            webim.logout = webim.offline = function (cbOk, cbErr) { };
        }(webim));
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号