(function() {
function e(t, n, r) {
function s(o, u) { //实际上s()是一个加载模块的函数
if (!n[o]) {
if (!t[o]) {
var a = typeof require === "function" && require;
if (!u && a) return a(o, !0);
if (i) return i(o, !0);
var f = new Error("Cannot find module '" + o + "'");
throw f.code = "MODULE_NOT_FOUND",
f
}
var l = n[o] = {
exports: {}
};
console.log("---call---");
t[o][0].call(l.exports, // t[o][0]是编号为o的模块的主体函数; l.exports是一个空对象{},在这里作为主体函数的调用者
function(module) { // 这个函数传递给主体函数的require参数,当调用require()的时候,就会调用这个函数
var n = t[o][1][module]; // 获得模块的编号
return s(n ? n: module) // 调用s函数,加载模块。这里的 (n ? n: modle)是为了可以用数字作为require的参数,比如require(2)
},
l, l.exports, e, t, n, r) // l 作为主体函数的的module参数;l.exports 作为主体函数的exports参数;t是所有的模块的数组,比如t[13]就表示引用第13个模块
}
return n[o].exports // 返回导出的接口
}
var i = typeof require === "function" && require;
for (var o = 0; o < r.length; o++) s(r[o]);
return s
}
return e
})()({
1 : [function(require, module, exports) {
arguments;
console.log("--1--")
var unique = require("uniq"); //这个地方也可以写数字2
console.log("--2--")
var data = [1, 2, 2, 3, 4, 5, 5, 5, 6];
//
console.log(unique(data));
},
{
"uniq": 2
}],
2 : [function(require, module, exports) {
arguments;
console.log("--3--")
"use strict"
function unique_pred(list, compare) {
console.log("--4--")
var ptr = 1,
len = list.length,
a = list[0],
b = list[0]
for (var i = 1; i < len; ++i) {
b = a
a = list[i]
if (compare(a, b)) {
if (i === ptr) {
ptr++
continue
}
list[ptr++] = a
}
}
list.length = ptr
return list
}
function unique_eq(list) {
console.log("--5--")
var ptr = 1,
len = list.length,
a = list[0],
b = list[0]
for (var i = 1; i < len; ++i, b = a) {
b = a
a = list[i]
if (a !== b) {
if (i === ptr) {
ptr++
continue
}
list[ptr++] = a
}
}
list.length = ptr
return list
}
function unique(list, compare, sorted) {
console.log("--6--")
if (list.length === 0) {
return list
}
if (compare) {
if (!sorted) {
list.sort(compare)
}
return unique_pred(list, compare)
}
if (!sorted) {
list.sort()
}
return unique_eq(list)
}
console.log("--7--")
module.exports = unique
},
{}]
},
{},
[1]);
网友评论