js核心知识点
总结一些js核心知识点
Yu
继续努力
展开
-
简单的深拷贝(只考虑Number和数组)
deepClone function deepClone(obj) { if (typeof obj !== 'object') return obj; if (Object.prototype.toString.call(obj) === '[object Array]') return new Array(...obj); let newObj = {}; for (let key in obj) { if (obj.hasOwnProperty(key)) {原创 2021-09-06 11:49:18 · 169 阅读 · 0 评论 -
手写简单的event-bus
测试示例 const add = (a, b) => console.log(a + b); const log = (...args) => console.log(...args); const event = new myEventBus(); event.on('add', add); event.on('log', log); event.emit('add', 1, 2); event.emit('log', 'hi~'); 主类 class myEventBus {原创 2021-09-06 11:44:25 · 185 阅读 · 0 评论 -
手写call/apply/bind方法
目录 1.call方法 2.apply方法 3.bind方法 概念: call/apply/bind 相同点:都可以用来重定义this的指向,第一个参数都是this的指向对象 不同点:传递的第二个参数不同(call的参数是直接放进去的,第二、第三个...第n个参数都是全部用逗号分隔,apply的所有参数都必须放在一个数组里面传进去,bind除了返回是函数以为,它的参数和call一样) 1.call方法 Function.prototype.myCall = functi...原创 2021-05-04 16:46:30 · 148 阅读 · 0 评论