JS模块化思维
下面是自己写的一个模块化的js包,如果要调用其中的函数,需要使用如下格式
spectaculars.sort.pupple(list, arr[0]);
如果在其他文件使用这个pupple函数,就需要先导入该js文件,<script src="/assets/js/spectaculars.js?v=1028" type="text/javascript"></script>
var spectaculars = {
URL : {
detail : function(chanel, code, _panelTitle) {
return '/wexin_info/data/' + chanel + '/' + code + '/' + _panelTitle;
}
},
sort : {
// 根据 key 做排序
pupple : function (arr, key) {
for(var i =0;i < arr.length - 1;i++)
{
for(var j = 0;j < arr.length - 1 - i;j++)// j开始等于0,
{
if(Number(arr[j][key]) - Number(arr[j+1][key]) < 0)
{
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
},
},
// 格式化数字
format : {
number : function (number, decimals, dec_point, thousands_sep) {
/*
3 * 参数说明:
4 * number:要格式化的数字
5 * decimals:保留几位小数
6 * dec_point:小数点符号
7 * thousands_sep:千分位符号
8 * */
number = (number + '').replace(/[^0-9+-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.ceil(n * k) / k;
};
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
var re = /(-?\d+)(\d{3})/;
while (re.test(s[0])) {
s[0] = s[0].replace(re, "$1" + sep + "$2");
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
},
}
}
NodeJS 模块化实践
模块化基本流程
创建模块,导出模块,引入模块,调用模块
创建模块 + 导出模块(student.js)
/*
* @Author: liujinliang
* @Date: 2018-05-24 17:09:46
* @Last Modified by: liujinliang
* @Last Modified time: 2018-05-24 17:11:21
*/
function add(student) {
console.log("add student:" + student);
}
exports.add = add
引入模块 + 调用模块(test.js)
/*
* @Author: liujinliang
* @Date: 2018-05-24 17:11:27
* @Last Modified by: liujinliang
* @Last Modified time: 2018-05-24 17:12:28
*/
var student = require('./student')
student.add("liujinliang")