DESKTOP-MK04A0R\chuck 3 سال پیش
والد
کامیت
7c3e6bfe39
15فایلهای تغییر یافته به همراه150 افزوده شده و 42 حذف شده
  1. 1 1
      01/src/call.js
  2. 1 1
      02/src/apply.js
  3. 1 1
      03/src/bind.js
  4. 2 2
      04/src/bind.js
  5. 10 10
      05/src/index.js
  6. 10 10
      06/src/index.js
  7. 9 9
      07/src/index.js
  8. 3 3
      08/src/index.js
  9. 2 2
      09/src/index.js
  10. 1 1
      10/src/index.js
  11. 1 1
      11/src/index.js
  12. 68 0
      dist/js/built.js
  13. 18 1
      package.json
  14. 11 0
      src/index.js
  15. 12 0
      webpack.config.js

+ 1 - 1
01/src/call.js

@@ -1,4 +1,4 @@
-function call(fn,obj,...args){
+export function call(fn,obj,...args){
     //判断
     if(obj === null || obj === undefined){
         obj = globalThis //全局对象 es11里的

+ 1 - 1
02/src/apply.js

@@ -1,4 +1,4 @@
-function apply(fn,obj,args){
+export function apply(fn,obj,args){
     //判断
     if(obj === undefined || obj === null){
         obj = globalThis

+ 1 - 1
03/src/bind.js

@@ -12,7 +12,7 @@ function call(fn,obj,...args){
     //返回结果
     return result
 }
-function bind(fn,obj,...args){
+export function bind(fn,obj,...args){
     //返回新函数
     return function(...args1){
         return call(fn,obj,...args,...args1)

+ 2 - 2
04/src/bind.js

@@ -1,6 +1,6 @@
 
 //节流 -- 立即执行回调
-function throttle(callback,wait){
+export function throttle(callback,wait){
     let start = 0;
     return function(e){
         let now = Date.now()
@@ -11,7 +11,7 @@ function throttle(callback,wait){
     }
 }
 //防抖 -- 事件触发时不会立即触发回调
-function debounce(callback,time){
+export function debounce(callback,time){
     let timer = null
     return function(e){
         if(timer){

+ 10 - 10
05/src/index.js

@@ -1,10 +1,10 @@
 /**
  * 1、map函数
  * @param {Array} arr 
- * @param {Function} callback 
+ * @param {export function} callback 
  * @returns 
  */
-function map(arr,callback){
+export function map(arr,callback){
     let result = []
     for(let i = 0;i < arr.length;i++){
         result.push(callback(arr[i],i))
@@ -14,11 +14,11 @@ function map(arr,callback){
 /**
  * 2、reduce函数
  * @param {Array} arr 
- * @param {Function} callback 
+ * @param {export function} callback 
  * @param {*} initValue 
  * @returns 
  */
-function reduce(arr,callback,initValue){
+export function reduce(arr,callback,initValue){
     let result = initValue
     for(let i = 0;i < arr.length;i++){
         result = callback(result,arr[i])
@@ -29,10 +29,10 @@ function reduce(arr,callback,initValue){
 /**
  * 3、filter函数
  * @param {Array} arr 
- * @param {Function} callback 
+ * @param {export function} callback 
  * @returns 
  */
-function filter(arr,callback){
+export function filter(arr,callback){
     let result = []
     for(let i = 0;i < arr.length;i++){
         if(callback(arr[i],i)){
@@ -49,7 +49,7 @@ function filter(arr,callback){
  * @param {*} callback 
  * @returns 
  */
-function find(arr,callback){
+export function find(arr,callback){
     for(let i = 0;i < arr.length;i++){
         if(callback(arr[i],i)){
             return arr[i]
@@ -65,7 +65,7 @@ function find(arr,callback){
  * @param {*} callback 
  * @returns 
  */
-function findIndex(arr,callback){
+export function findIndex(arr,callback){
     for(let i = 0;i < arr.length;i++){
         if(callback(arr[i],i)){
             return i
@@ -80,7 +80,7 @@ function findIndex(arr,callback){
  * @param {*} callback 
  * @returns bool
  */
-function every(arr,callback){
+export function every(arr,callback){
     for(let i = 0;i < arr.length;i++){
         if(!callback(arr[i],i)){
             return false
@@ -96,7 +96,7 @@ function every(arr,callback){
  * @param {*} callback 
  * @returns bool
  */
-function some(arr,callback){
+export function some(arr,callback){
     for(let i = 0;i < arr.length;i++){
         if(callback(arr[i],i)){
             return true

+ 10 - 10
06/src/index.js

@@ -5,7 +5,7 @@
  * @param {*} arr 
  * @returns 
  */
-function unique(arr){
+export function unique(arr){
     const result = []
     arr.forEach(item=>{
         if(!result.includes(item)){
@@ -20,7 +20,7 @@ function unique(arr){
  * @param {*} arr 
  * @returns 
  */
-function unique2(arr){
+export function unique2(arr){
     return [...new Set(arr)]
 }
 
@@ -30,7 +30,7 @@ function unique2(arr){
  * @param  {...any} args 
  * @returns 
  */
-function concat(arr,...args){
+export function concat(arr,...args){
     const result = [...arr]
     args.forEach(item=>{
         if(Array.isArray(item)){
@@ -49,7 +49,7 @@ function concat(arr,...args){
  * @param {*} end 
  * @returns 
  */
-function slice(arr,start,end){
+export function slice(arr,start,end){
     if(arr.length <= 0) return []
     start = start || 0
     if(start >= arr.length) return []
@@ -69,7 +69,7 @@ function slice(arr,start,end){
  * @param {*} arr 
  * @returns 
  */
-function flatten1(arr){
+export function flatten1(arr){
     let result = []
     arr.forEach(item=>{
         if(Array.isArray(item)){
@@ -86,7 +86,7 @@ function flatten1(arr){
  * @param {*} arr 
  * @returns 
  */
-function flatten2(arr){
+export function flatten2(arr){
     let result = [...arr]
     while(result.some(item=>Array.isArray(item))){
         result = [].concat(...result) // concat 可以把元素放入数组 示例:[].concat(1,2,[3,4]) => [1,2,3,4]
@@ -100,7 +100,7 @@ function flatten2(arr){
  * @param {*} size 
  * @returns 
  */
-function chunk(arr,size = 1){
+export function chunk(arr,size = 1){
     if(arr.lenght === 0) return []
     let result = []
     let tmp = []
@@ -121,7 +121,7 @@ function chunk(arr,size = 1){
  * @param {*} arr1 
  * @returns 
  */
-function diffrence(arr,arr1){
+export function diffrence(arr,arr1){
     return arr.filter(item=>!arr1.includes(item))
 }
 
@@ -131,7 +131,7 @@ function diffrence(arr,arr1){
  * @param  {...any} args 
  * @returns 
  */
-function pull(arr,...args){
+export function pull(arr,...args){
     const result = []
     for(let i = 0;i<arr.length;i++){
         if(args.includes(arr[i])){
@@ -148,7 +148,7 @@ function pull(arr,...args){
  * @param {*} size 
  * @returns 
  */
-function drop(arr,size){
+export function drop(arr,size){
     return arr.filter((item,index)=>{
         return index >= size
     })

+ 9 - 9
07/src/index.js

@@ -4,7 +4,7 @@
  * @param  {...any} args 
  * @returns 
  */
-function newInstance(Fn,...args){
+export function newInstance(Fn,...args){
     const obj = {}
     const result = Fn.call(obj,...args)
     obj.__proto__ = Fn.prototype
@@ -16,7 +16,7 @@ function newInstance(Fn,...args){
  * @param {*} Fn 
  * @returns 
  */
-function myInstanceOf(obj,Fn){
+export function myInstanceOf(obj,Fn){
     let prototype = Fn.prototype
     let proto = obj.__proto__
     while(proto){
@@ -32,7 +32,7 @@ function myInstanceOf(obj,Fn){
  * @param  {...any} objs 
  * @returns 
  */
-function mergeObject(...objs){
+export function mergeObject(...objs){
     const result = {}
     objs.forEach(obj =>{
         //获取所有属性
@@ -52,7 +52,7 @@ function mergeObject(...objs){
  * @param {*} target 
  * @returns 
  */
-function clone1(target){
+export function clone1(target){
     if(typeof target === 'object' && target !== null){
         if(Array.isArray(target)){
             return [...target]
@@ -67,7 +67,7 @@ function clone1(target){
  * @param {*} target 
  * @returns 
  */
- function clone2(target){
+ export function clone2(target){
     if(typeof target === 'object' && target !== null){
         //创建容器
         const result = Array.isArray(target)?[]:{}
@@ -87,7 +87,7 @@ function clone1(target){
  * @param {*} target 
  * @returns 
  */
-function deepClone1(target){
+export function deepClone1(target){
     return JSON.parse(JSON.stringify(target))
 }
 /**
@@ -95,7 +95,7 @@ function deepClone1(target){
  * @param {*} target 
  * @returns 
  */
-function deepClone2(target){
+export function deepClone2(target){
     if(typeof target === 'object' && target !== null){
         const result = Array.isArray(target)?[]:{}
         for(let key in target){
@@ -115,7 +115,7 @@ function deepClone2(target){
  * @param {*} map 
  * @returns 
  */
- function deepClone2(target,map = new Map()){
+ export function deepClone3(target,map = new Map()){
     if(typeof target === 'object' && target !== null){
         let cache = map.get(target)
         if(cache) return cache
@@ -138,7 +138,7 @@ function deepClone2(target){
  * @param {*} map 
  * @returns 
  */
- function deepClone2(target,map = new Map()){
+ export function deepClone4(target,map = new Map()){
     if(typeof target === 'object' && target !== null){
         let cache = map.get(target)
         if(cache) return cache

+ 3 - 3
08/src/index.js

@@ -3,7 +3,7 @@
  * @param {*} str 
  * @returns 
  */
-function reverseString(str){
+export function reverseString(str){
     //let arr = str.split('')
     let arr = [...str]
     arr.reverse()
@@ -15,7 +15,7 @@ function reverseString(str){
  * @param {*} str 
  * @returns 
  */
-function palindrome(str){
+export function palindrome(str){
     return reverseString(str) === str
 }
 /**
@@ -24,6 +24,6 @@ function palindrome(str){
  * @param {*} size 
  * @returns 
  */
-function truncate(str,size){
+export function truncate(str,size){
     return str.slice(0,size) + '...'
 }

+ 2 - 2
09/src/index.js

@@ -5,7 +5,7 @@
  * @param {*} fn 
  * @param {*} selector 
  */
-function addEventListener(el,type,fn,selector){
+export function addEventListener(el,type,fn,selector){
     if(typeof el === 'string'){
         el = document.querySelector(el)
     }
@@ -26,7 +26,7 @@ function addEventListener(el,type,fn,selector){
 /**
  * 手写事件总线 -- 一个事件绑定多个回调
  */
-const eventBus = {
+export const eventBus = {
     //保存类型和回调的容器
     callbacks:{}
 }

+ 1 - 1
10/src/index.js

@@ -1,5 +1,5 @@
 
-const PubSub = {
+export const PubSub = {
     id:1,
     callbacks:{
         // pay:{

+ 1 - 1
11/src/index.js

@@ -3,7 +3,7 @@
  * @param {*} param0 
  * @returns 
  */
-function axios({method,url,params,data}){
+export function axios({method,url,params,data}){
     method = method.toUpperCase()
     return new Promise((resolve,reject)=>{
         const xhr = new XMLHttpRequest()

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 68 - 0
dist/js/built.js


+ 18 - 1
package.json

@@ -1,8 +1,25 @@
 {
+  "name":"chuck-utils",
+  "version":"1.0.0",
+  "description": "自定义工具函数",
+  "main": "./dist/js/built.js",
   "scripts": {
     "start": "http-server -a 127.0.0.1 -p 7070"
   },
+  "keywords": [
+    "utils",
+    "function",
+    "axios",
+    "pub-sub"
+  ],
+  "author": {
+    "name":"chuckchen",
+    "email": "2811863274@qq.com",
+    "url":"https://gogs.chuckchen.top/chuck/custom-tool-function"
+  },
   "devDependencies": {
-    "http-server": "^13.0.1"
+    "http-server": "^13.0.1",
+    "webpack": "^5.51.1",
+    "webpack-cli": "^4.8.0"
   }
 }

+ 11 - 0
src/index.js

@@ -0,0 +1,11 @@
+export {call} from '../01/src/call.js'
+export {apply} from '../02/src/apply.js'
+export {bind} from '../03/src/bind.js'
+export {throttle,debounce} from '../04/src/bind.js'
+export {map,reduce,filter,find,findIndex,every,some} from '../05/src/index.js'
+export {unique,unique2,concat,slice,flatten1,flatten2,chunk,diffrence,pull,drop} from '../06/src/index.js'
+export {newInstance,myInstanceOf,mergeObject,clone1,clone2,deepClone1,deepClone2,deepClone3,deepClone4} from '../07/src/index.js'
+export {reverseString,palindrome,truncate} from '../08/src/index.js'
+export {addEventListener,eventBus} from '../09/src/index.js'
+export {PubSub} from '../10/src/index.js'
+export {axios} from '../11/src/index.js'

+ 12 - 0
webpack.config.js

@@ -0,0 +1,12 @@
+const path = require('path');
+
+module.exports = {
+  entry: './src/index.js',
+  output: {
+    path: path.resolve(__dirname, 'dist'),
+    filename: 'js/built.js',
+    library:'utils',
+    libraryTarget:'umd'
+  },
+  mode:'development'
+};

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است