前端架构

//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));

原文地址:https://www.cnblogs.com/sntetwt/p/11806560.html