-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocs__interview__js__programming.md.js
More file actions
1 lines (1 loc) · 19.2 KB
/
docs__interview__js__programming.md.js
File metadata and controls
1 lines (1 loc) · 19.2 KB
1
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[27],{"M/Q6":function(e,n,t){"use strict";var a=t("q1tI"),r=t.n(a);t("x8cr");function l(){return l=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l.apply(this,arguments)}n["a"]=function(e){return r.a.createElement("div",l({className:"__dumi-default-alert"},e))}},XTZG:function(e,n,t){"use strict";t.r(n);var a=t("q1tI"),r=t.n(a),l=t("dEAq"),o=t("M/Q6"),c=t("H1Ra"),i=r.a.memo((e=>{e.demos;return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"markdown"},r.a.createElement("h2",{id:"1\u5b9e\u73b0-lodash-\u7684get\u65b9\u6cd5"},r.a.createElement(l["AnchorLink"],{to:"#1\u5b9e\u73b0-lodash-\u7684get\u65b9\u6cd5","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"1\u3001\u5b9e\u73b0 lodash \u7684/.get()\u65b9\u6cd5"),r.a.createElement(c["a"],{code:"function sageGet(obj, target) {\n //\u539f\u672c\u662fa[0].b.c[0]->a.0.b.c.0->[a,0,b,c,0]\n const paths = target.replace(/\\[(\\d+)\\]/g, '.$1').split('.');\n let result = obj;\n for (let p of paths) {\n result = Object(result)[p];\n if (result === undefined) {\n return undefined;\n }\n }\n return result;\n}\n//\u5f97\u5230\u5982\u4e0b\u529f\u80fd\uff1a\nlet obj = {\n a: [\n {\n b: {\n c: ['c'],\n },\n },\n ],\n};\n\nsageGet(obj, 'a[0].b.c[0]'); //return \"c\"\nsafeGet(obj, 'a.b.c.c'); // return defined",lang:"js"}),r.a.createElement("h2",{id:"2\u8bf7\u5b9e\u73b0\u4e00\u4e2a\u65b9\u6cd5function-grouparrayn\u5176\u4e2d\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6570\u7ec4\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6574\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u7ec4\u8be5\u6570\u7ec4\u5e94\u8be5\u6ee1\u8db3\u5982\u4e0b\u6761\u4ef6"},r.a.createElement(l["AnchorLink"],{to:"#2\u8bf7\u5b9e\u73b0\u4e00\u4e2a\u65b9\u6cd5function-grouparrayn\u5176\u4e2d\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6570\u7ec4\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6574\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u7ec4\u8be5\u6570\u7ec4\u5e94\u8be5\u6ee1\u8db3\u5982\u4e0b\u6761\u4ef6","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"2\u3001\u8bf7\u5b9e\u73b0\u4e00\u4e2a\u65b9\u6cd5",r.a.createElement("code",null,"function group(array,n)"),",\u5176\u4e2d\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u6574\u6570\uff0c\u8fd4\u56de\u4e00\u4e2a\u6570\u7ec4\uff0c\u8be5\u6570\u7ec4\u5e94\u8be5\u6ee1\u8db3\u5982\u4e0b\u6761\u4ef6\uff1a"),r.a.createElement(c["a"],{code:"var n = 2,\n arr = [1, 2, 3, 4, 5, 6];\nvar resultArr = group(arr, n);\n//\u6b64\u65f6resultArr\u4e3a[[1,2],[3,4],[5,6]],arr\u8fd8\u662f[1,2,3,4,5,6]\n//n=3\u65f6\uff0cresultArr=[[1,2,3],[4,5,6]]\n//n=4\u65f6\uff0cresultArr=[[1,2,3,4],[5,6]]\n//n<0\u65f6\uff0cresultArr=[1,2,3,4,5,6]\n//n>arr.length\u65f6\uff0cresultArr=[1,2,3,4,5,6]\n\n//\u7b2c\u4e00\u79cd for\u5faa\u73af\u5b9e\u73b0 \u65f6\u95f4\u590d\u6742\u5ea6O(n)\nfunction group(arr, n) {\n if (n < 0 || n > arr.length) return arr;\n let result = [];\n for (let i = 0; i < arr.length; i += n) {\n result.push(arr.slice(i, i + n));\n }\n return result;\n}\n\nconsole.log(group([1, 2, 3, 4, 5, 6], 4));\n\n//\u7b2c\u4e8c\u79cd while\nfunction group1(arr, n) {\n let index = 0,\n result = [];\n while (index < arr.length) {\n result.push(arr.slice(index, (index += n)));\n }\n return result;\n}",lang:"js"}),r.a.createElement("h2",{id:"3\u624b\u5199\u4e00\u4e2a-new-\u64cd\u4f5c\u7b26"},r.a.createElement(l["AnchorLink"],{to:"#3\u624b\u5199\u4e00\u4e2a-new-\u64cd\u4f5c\u7b26","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"3\u3001\u624b\u5199\u4e00\u4e2a new \u64cd\u4f5c\u7b26"),r.a.createElement("p",null,"\u9996\u5148\u770b\u4e00\u4e0b new \u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48\uff1f"),r.a.createElement(c["a"],{code:"function User() {\n this.name = 'xiaoming';\n this.age = 20;\n}\n\nconst user = new User();\nconsole.log(user); //{name:'xiaoming',age:20}",lang:"js"}),r.a.createElement("ol",null,r.a.createElement("li",null,"\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u7a7a\u5bf9\u8c61")),r.a.createElement(c["a"],{code:"var obj = {};\n//or\nvar obj = new Object();",lang:"js"}),r.a.createElement("ol",{start:2},r.a.createElement("li",null,"\u94fe\u63a5\u8be5\u5bf9\u8c61\u5230\u53e6\u4e00\u4e2a\u5bf9\u8c61\u4e0a\uff08\u5c06\u8be5\u5bf9\u8c61\u7684",r.a.createElement("em",null,"proto"),"\u6307\u5411\u6784\u9020\u51fd\u6570\u7684\u7684 prototype\uff09")),r.a.createElement(c["a"],{code:"obj._proto_ = User.prototype;",lang:"js"}),r.a.createElement("ol",{start:3},r.a.createElement("li",null,r.a.createElement("p",null,"\u628a\u521b\u5efa\u7684",r.a.createElement("code",null,"obj"),"\u4f5c\u4e3a",r.a.createElement("code",null,"this"),"\u7684\u4e0a\u4e0b\u6587")),r.a.createElement("li",null,r.a.createElement("p",null,"\u5224\u65ad\u6784\u9020\u51fd\u6570\u7684\u8fd4\u56de\u503c"))),r.a.createElement("p",null,"\u7efc\u5408\u4ee3\u7801\u9a8c\u8bc1\uff1a"),r.a.createElement(c["a"],{code:"//\u624b\u5199new\nfunction User(name, age) {\n this.name = name;\n this.age = age;\n}\nfunction myNew(o, ...args) {\n // \u521b\u5efa\u5bf9\u8c61\n const obj = {};\n // \u94fe\u63a5\u5bf9\u8c61\n obj.__proto__ = o.prototype;\n // \u7ed1\u5b9athis\n let res = o.call(obj, ...args);\n return res instanceof Object ? res : obj;\n}\nconst user = myNew(User, 'tf', 20);\nconsole.log(user);",lang:"js"}),r.a.createElement("h2",{id:"4\u624b\u5199\u4e00\u4e2a-jsonstringify-\u548c-jsonparse"},r.a.createElement(l["AnchorLink"],{to:"#4\u624b\u5199\u4e00\u4e2a-jsonstringify-\u548c-jsonparse","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"4\u3001\u624b\u5199\u4e00\u4e2a JSON.stringify \u548c JSON.parse"),r.a.createElement("h2",{id:"5\u624b\u5199\u4e00\u4e2a-callapplybind"},r.a.createElement(l["AnchorLink"],{to:"#5\u624b\u5199\u4e00\u4e2a-callapplybind","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"5\u3001\u624b\u5199\u4e00\u4e2a call\u3001apply\u3001bind"),r.a.createElement("h2",{id:"6\u624b\u5199-js-\u6d45\u62f7\u8d1d\u6df1\u62f7\u8d1d\u7531\u6d45\u5165\u6df1\u591a\u79cd\u89e3\u6cd5"},r.a.createElement(l["AnchorLink"],{to:"#6\u624b\u5199-js-\u6d45\u62f7\u8d1d\u6df1\u62f7\u8d1d\u7531\u6d45\u5165\u6df1\u591a\u79cd\u89e3\u6cd5","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"6\u3001\u624b\u5199 js \u6d45\u62f7\u8d1d\u3001\u6df1\u62f7\u8d1d\uff08\u7531\u6d45\u5165\u6df1\u591a\u79cd\u89e3\u6cd5\uff09"),r.a.createElement(c["a"],{code:"//\u6d45\u62f7\u8d1d\nconst shallowClone = target => {\n if (typeof target === 'object' && target !== null) {\n const cloneTarget = Array.isArray(target) ? [] : {};\n for (let key in target) {\n //hasOwnProperty \u5224\u65ad\u5bf9\u8c61\u662f\u5426\u5305\u542b\u7279\u5b9a\u7684\u81ea\u8eab\uff08\u975e\u7ee7\u627f\uff09\u5c5e\u6027\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = target[key];\n }\n }\n return cloneTarget;\n }\n return target;\n};\n\nconsole.log(shallowClone({ a: 1, b: { c: 2 } }));\n\n//\u6df1\u62f7\u8d1d--\u57fa\u7840\u7248\nconst deepClone = obj => {\n let cloneObj = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n cloneObj[key] = deepClone(obj[key]);\n } else {\n cloneObj[key] = obj[key];\n }\n }\n return cloneObj;\n};\n\n//\u6df1\u62f7\u8d1d--\u52a0\u5f3a\u7248",lang:"js"}),r.a.createElement("h2",{id:"7\u624b\u5199\u4e00\u4e2a-instanceof-\u539f\u7406"},r.a.createElement(l["AnchorLink"],{to:"#7\u624b\u5199\u4e00\u4e2a-instanceof-\u539f\u7406","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"7\u3001\u624b\u5199\u4e00\u4e2a instanceOf \u539f\u7406"),r.a.createElement("p",null,"\u56e0\u4e3a",r.a.createElement("code",null,"instanceOf"),"\u53ea\u80fd\u5224\u65ad\u590d\u6742\u7c7b\u578b\uff0c\u4e0d\u80fd\u5224\u65ad\u7b80\u5355\u7c7b\u578b\uff0c\u6240\u4ee5\u53ea\u8981\u5de6\u8fb9\u90fd\u662f\u7b80\u5355\u7c7b\u578b\u90fd\u662f",r.a.createElement("code",null,"false")),r.a.createElement(c["a"],{code:"function myInstanceOf(left, right) {\n //\u8fd9\u91cc\u5148\u7528typeof\u6765\u5224\u65ad\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff0c\u5982\u679c\u662f\u5c31\u8fd4\u56defalse\n if (typeof left !== 'object' || left === null) return false;\n //getPrototypeOf\u662fobject\u5bf9\u8c61\u81ea\u5e26\u7684api,\u80fd\u591f\u62ff\u5230\u53c2\u6570\u7684\u539f\u578b\u5bf9\u8c61\n let proto = Object.getPrototypeOf(left);\n while (true) {\n //\u5faa\u73af\u5411\u4e0b\u5bfb\u627e\uff0c\u76f4\u5230\u627e\u5230\u76f8\u540c\u7684\u539f\u578b\u5bf9\u8c61\n if (proto === null) return false;\n if (proto === right.prototype) return true; //\u627e\u5230\u76f8\u540c\u7684\u539f\u578b\u5bf9\u8c61\u5c31\u8fd4\u56de true\n proto = Object.getPrototypeOf(proto);\n }\n}\n\nconsole.log(myInstanceOf(new Number(123), Number)); //true\nconsole.log(myInstanceOf(123, Number)); //false",lang:"js"}),r.a.createElement("h2",{id:"8\u624b\u5199-map-\u548c-reduce"},r.a.createElement(l["AnchorLink"],{to:"#8\u624b\u5199-map-\u548c-reduce","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"8\u3001\u624b\u5199 map \u548c reduce"),r.a.createElement("h2",{id:"9\u624b\u5199\u5b9e\u73b0\u62d6\u62fd"},r.a.createElement(l["AnchorLink"],{to:"#9\u624b\u5199\u5b9e\u73b0\u62d6\u62fd","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"9\u3001\u624b\u5199\u5b9e\u73b0\u62d6\u62fd"),r.a.createElement("h2",{id:"10\u4f7f\u7528-settimeout-\u5b9e\u73b0-setinterval"},r.a.createElement(l["AnchorLink"],{to:"#10\u4f7f\u7528-settimeout-\u5b9e\u73b0-setinterval","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"10\u3001\u4f7f\u7528 setTimeout \u5b9e\u73b0 setInterval"),r.a.createElement("h2",{id:"11\u624b\u5199\u5b9e\u73b0-objectcreate-\u7684\u57fa\u672c\u539f\u7406"},r.a.createElement(l["AnchorLink"],{to:"#11\u624b\u5199\u5b9e\u73b0-objectcreate-\u7684\u57fa\u672c\u539f\u7406","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"11\u3001\u624b\u5199\u5b9e\u73b0 Object.create \u7684\u57fa\u672c\u539f\u7406"),r.a.createElement("h2",{id:"12\u624b\u5199-promise"},r.a.createElement(l["AnchorLink"],{to:"#12\u624b\u5199-promise","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"12\u3001\u624b\u5199 Promise"),r.a.createElement("h2",{id:"13\u5b9e\u73b0\u6570\u7ec4\u8f6c\u6811"},r.a.createElement(l["AnchorLink"],{to:"#13\u5b9e\u73b0\u6570\u7ec4\u8f6c\u6811","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"13\u3001\u5b9e\u73b0\u6570\u7ec4\u8f6c\u6811"),r.a.createElement(c["a"],{code:"let input = [\n { id: 1, val: '\u5b66\u6821', parentId: null },\n { id: 2, val: '\u73ed\u7ea71', parentId: 1 },\n { id: 3, val: '\u73ed\u7ea72', parentId: 1 },\n { id: 4, val: '\u5b66\u751f1', parentId: 2 },\n { id: 5, val: '\u5b66\u751f2', parentId: 3 },\n { id: 6, val: '\u5b66\u751f3', parentId: 3 },\n];\nfunction arrToTree(array) {\n let root = array[0];\n let tree = {\n id: root.id,\n val: root.val,\n children: array.length > 0 ? toTree(root.id, array) : [],\n };\n return tree;\n}\n\nfunction toTree(parentId, arr) {\n console.log(arr);\n let children = [];\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].parentId === parentId) {\n children.push({\n id: arr[i].id,\n val: arr[i].val,\n children: toTree(arr[i].id, arr),\n });\n }\n }\n return children;\n}\n\nconsole.log(arrToTree(input));\n//\u7ed3\u679c\n\nlet output = {\n id: 1,\n val: '\u5b66\u6821',\n children: [\n {\n id: 2,\n val: '\u73ed\u7ea71',\n children: [\n {\n id: 4,\n val: '\u5b66\u751f1',\n children: [],\n },\n ],\n },\n ],\n};",lang:"js"}),r.a.createElement("h2",{id:"14\u88c5\u9970\u5668\u7ed9\u4e00\u4e2a\u51fd\u6570\u6dfb\u52a0\u88c5\u9970\u5668\u5728\u4e0d\u6539\u53d8\u539f\u51fd\u6570\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u903b\u8f91"},r.a.createElement(l["AnchorLink"],{to:"#14\u88c5\u9970\u5668\u7ed9\u4e00\u4e2a\u51fd\u6570\u6dfb\u52a0\u88c5\u9970\u5668\u5728\u4e0d\u6539\u53d8\u539f\u51fd\u6570\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u903b\u8f91","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"14\u3001\u88c5\u9970\u5668\uff1a\u7ed9\u4e00\u4e2a\u51fd\u6570\u6dfb\u52a0\u88c5\u9970\u5668\uff0c\u5728\u4e0d\u6539\u53d8\u539f\u51fd\u6570\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u903b\u8f91"),r.a.createElement("p",null,"\u88c5\u9970\u5668\u5199\u6cd5\uff1a"),r.a.createElement(c["a"],{code:"function A() {\n console.log('A');\n}\n\nconst myDecorator = (fn, execute, obj = window) => {\n let old = obj[fn];\n obj[fn] = function() {\n return execute(old.bind(obj));\n };\n console.log(obj[fn]);\n};\n\nmyDecorator('A', fn => {\n fn();\n console.log('hello world');\n});\nA();",lang:"js"}),r.a.createElement("h2",{id:"15\u7528-promise-\u5b9e\u73b0\u8bf7\u6c42\u5e76\u53d1\u4e2a\u6570\u9650\u5236"},r.a.createElement(l["AnchorLink"],{to:"#15\u7528-promise-\u5b9e\u73b0\u8bf7\u6c42\u5e76\u53d1\u4e2a\u6570\u9650\u5236","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"15\u3001\u7528 promise \u5b9e\u73b0\u8bf7\u6c42\u5e76\u53d1\u4e2a\u6570\u9650\u5236\uff1f"),r.a.createElement("h2",{id:"16\u624b\u5199\u7528-es6-proxy-\u5982\u4f55\u5b9e\u73b0-arr-1"},r.a.createElement(l["AnchorLink"],{to:"#16\u624b\u5199\u7528-es6-proxy-\u5982\u4f55\u5b9e\u73b0-arr-1","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"16\u3001\u624b\u5199\u7528 es6 Proxy \u5982\u4f55\u5b9e\u73b0 arr[-1]"),r.a.createElement(c["a"],{code:"const negativeArray = els =>\n new Proxy(els, {\n get: (target, propKey, receiver) => {\n console.log(target, propKey);\n return Reflect.get(\n target,\n +propKey < 0 ? String(target.length + +propKey) : propKey,\n receiver,\n );\n },\n });\nconst unicorn = negativeArray(['\u4e00', '\u4e8c', '\u4e09', '\u56db']);\nconsole.log(unicorn[-1]); //\u56db",lang:"js"}),r.a.createElement("h2",{id:"17\u5b9e\u73b0\u683c\u5f0f\u5316\u8f93\u51fa\u6bd4\u5982\u8f93\u51fa-999999999-\u8f6c\u6362\u6210-999999999"},r.a.createElement(l["AnchorLink"],{to:"#17\u5b9e\u73b0\u683c\u5f0f\u5316\u8f93\u51fa\u6bd4\u5982\u8f93\u51fa-999999999-\u8f6c\u6362\u6210-999999999","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"17\u3001\u5b9e\u73b0\u683c\u5f0f\u5316\u8f93\u51fa\uff0c\u6bd4\u5982\u8f93\u51fa 999999999 \u8f6c\u6362\u6210 999,999,999"),r.a.createElement(c["a"],{code:"function changeNumber(number) {\n let arr = [];\n let str = number + '';\n let count = str.length;\n while (count >= 3) {\n arr.unshift(str.slice(count - 3, count));\n count = count - 3;\n }\n count % 3 !== 0 && arr.unshift(str.slice(0, count % 3));\n return arr.toString();\n}\nconsole.log(changeNumber(12345678)); //12,345,678",lang:"js"}),r.a.createElement("h2",{id:"18\u624b\u5199\u53d1\u5e03\u8ba2\u9605\u6a21\u5f0f"},r.a.createElement(l["AnchorLink"],{to:"#18\u624b\u5199\u53d1\u5e03\u8ba2\u9605\u6a21\u5f0f","aria-hidden":"true",tabIndex:-1},r.a.createElement("span",{className:"icon icon-link"})),"18\u3001\u624b\u5199\u53d1\u5e03\u8ba2\u9605\u6a21\u5f0f"),r.a.createElement(c["a"],{code:"class myEventEmitter {\n constructor() {\n // eventMap \u7528\u6765\u5b58\u50a8\u4e8b\u4ef6\u548c\u76d1\u542c\u51fd\u6570\u4e4b\u95f4\u7684\u5173\u7cfb\n this.eventMap = {};\n }\n // type \u8fd9\u91cc\u5c31\u4ee3\u8868\u4e8b\u4ef6\u7684\u540d\u79f0\n on(type, handler) {\n // hanlder \u5fc5\u987b\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u5982\u679c\u4e0d\u662f\u76f4\u63a5\u62a5\u9519\n if (!(handler instanceof Function)) {\n throw new Error('\u54e5 \u4f60\u9519\u4e86 \u8bf7\u4f20\u4e00\u4e2a\u51fd\u6570');\n }\n // \u5224\u65ad type \u4e8b\u4ef6\u5bf9\u5e94\u7684\u961f\u5217\u662f\u5426\u5b58\u5728\n if (!this.eventMap[type]) {\n // \u82e5\u4e0d\u5b58\u5728\uff0c\u65b0\u5efa\u8be5\u961f\u5217\n this.eventMap[type] = [];\n }\n // \u82e5\u5b58\u5728\uff0c\u76f4\u63a5\u5f80\u961f\u5217\u91cc\u63a8\u5165 handler\n this.eventMap[type].push(handler);\n }\n // \u522b\u5fd8\u4e86\u6211\u4eec\u524d\u9762\u8bf4\u8fc7\u89e6\u53d1\u65f6\u662f\u53ef\u4ee5\u643a\u5e26\u6570\u636e\u7684\uff0cparams \u5c31\u662f\u6570\u636e\u7684\u8f7d\u4f53\n emit(type, params) {\n // \u5047\u8bbe\u8be5\u4e8b\u4ef6\u662f\u6709\u8ba2\u9605\u7684\uff08\u5bf9\u5e94\u7684\u4e8b\u4ef6\u961f\u5217\u5b58\u5728\uff09\n if (this.eventMap[type]) {\n // \u5c06\u4e8b\u4ef6\u961f\u5217\u91cc\u7684 handler \u4f9d\u6b21\u6267\u884c\u51fa\u961f\n this.eventMap[type].forEach((handler, index) => {\n // \u6ce8\u610f\u522b\u5fd8\u4e86\u8bfb\u53d6 params\n handler(params);\n });\n }\n }\n off(type, handler) {\n if (this.eventMap[type]) {\n this.eventMap[type].splice(this.eventMap[type].indexOf(handler) >>> 0, 1);\n }\n }\n}\n\nconst myEvent = new myEventEmitter();\nconst testHandler = function(params) {\n console.log(`test\u4e8b\u4ef6\u88ab\u89e6\u53d1\u4e86\uff0ctestHandler \u63a5\u6536\u5230\u7684\u5165\u53c2\u662f${params}`);\n};\nconst testHandler1 = function(params) {\n console.log(`test\u4e8b\u4ef6\u88ab\u89e6\u53d1\u4e86\uff0ctestHandler \u63a5\u6536\u5230\u7684\u5165\u53c2\u662f${params}`);\n};\nmyEvent.on('test', testHandler);\nmyEvent.emit('test', 'newState');\n\nmyEvent.on('test1', testHandler1);\nmyEvent.emit('test1', '111');",lang:"js"}),r.a.createElement(o["a"],{type:"info"},">>> \u662f\u65e0\u7b26\u53f7\u6309\u4f4d\u53f3\u79fb\u8fd0\u7b97\u7b26\u3002\u8003\u8651 indexOf \u8fd4\u56de-1 \u7684\u60c5\u51b5\uff1asplice\u65b9\u6cd5\u559c\u6b22\u628a-1\u89e3\u8bfb\u4e3a\u5f53\u524d\u6570\u7ec4\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u8fd9\u6837\u5b50\u7684\u8bdd\uff0c\u5728\u538b\u6839\u6ca1\u6709\u5bf9\u5e94\u51fd\u6570\u53ef\u4ee5\u5220\u7684\u60c5\u51b5\u4e0b\uff0c\u4e0d\u7ba1\u4e09\u4e03\u4e8c\u5341\u4e00\u5c31\u628a\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u7ed9\u5e72\u6389\u4e86\u3002\u800c >>> \u7b26\u53f7\u5bf9\u6b63\u6574\u6570\u6ca1\u6709\u5f71\u54cd\uff0c\u4f46\u5bf9\u4e8e-1\u6765\u8bf4\u5b83\u4f1a\u628a-1\u8f6c\u6362\u4e3a\u4e00\u4e2a\u5de8\u5927\u7684\u6570\uff08\u4f60\u53ef\u4ee5\u672c\u5730\u8fd0\u884c\u4e0b\u8bd5\u8bd5\u770b\uff0c\u5e94\u8be5\u662f\u4e00\u4e2a32\u4f4d\u5168\u662f1\u7684\u4e8c\u8fdb\u5236\u6570\uff0c\u6298\u7b97\u6210\u5341\u8fdb\u5236\u5c31\u662f 4294967295\uff09\u3002\u8fd9\u4e2a\u5de8\u5927\u7684\u7d22\u5f15splice\u662f\u627e\u4e0d\u5230\u7684\uff0c\u627e\u4e0d\u5230\u5c31\u4e0d\u5220\uff0c\u4e8e\u662f\u4e00\u5207\u4fdd\u6301\u539f\u72b6\uff0c\u521a\u597d\u7b26\u5408\u6211\u4eec\u7684\u9884\u671f")))}));n["default"]=e=>{var n=r.a.useContext(l["context"]),t=n.demos;return r.a.useEffect((()=>{var n;null!==e&&void 0!==e&&null!==(n=e.location)&&void 0!==n&&n.hash&&l["AnchorLink"].scrollToAnchor(decodeURIComponent(e.location.hash.slice(1)))}),[]),r.a.createElement(i,{demos:t})}},x8cr:function(e,n,t){}}]);