![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
克里斯蒂啊
这个作者很懒,什么都没留下…
展开
-
setTimeout模拟setInterval
setTimeout模拟setInterval核心:采用闭包,返回了清除函数function mySetInterval(fn, time) { let timer = null; let isClear = false; function interVal() { if (isClear) { isClear = false; clearTimeout(timer); return; } fn(); timer = set原创 2021-09-23 14:47:52 · 116 阅读 · 0 评论 -
手写javascript的bind函数
手写javascript的bind函数核心:需要考虑作为构造函数时,绑定的是实例this而不是传入的obj对象Function.prototype.myBind = function (context, ...args) { if (!context || context === null) { context = window; } let fn = Symbol(); const _this = this; let result = function (...innerAr原创 2021-09-23 14:01:44 · 118 阅读 · 0 评论 -
javascript继承
原型链继承function Parent() { this.name = "tom"; this.info = { age: 18, sex: "男", };}Parent.prototype.getInfo = function () { console.log(this.info);};function Child() {}// 创建父类的实例并赋值给子类的prototype,Child.prototype.construtor也一同被重写Child.pr原创 2021-09-22 17:53:27 · 122 阅读 · 0 评论 -
手写javescript的防抖与节流函数
防抖函数短时间内多次触发同一事件,只执行最后一次,或者只执行最开始的一次,中间的不执行立即执行的防抖函数是指触发后,立刻执行函数,然后time秒内不触发事件才能继续执行函数/** * 防抖函数 * @param {Function} fn 函数 * @param {number} time 延迟执行毫秒数 * @param {boolean} immediate 是否立刻执行函数 */function debounce(fn, time, immediate) { let time原创 2021-09-08 17:38:49 · 57 阅读 · 0 评论 -
手写javascript发布订阅系统
发布订阅系统class EventCenter { eventList = new Map(); // 1 // 绑定 on(name, fn) { let eventInfo = this.eventList.get(name); if (!eventInfo) { // 2 eventInfo = { data: {}, callback: new Set(), }; this.eventList.set(原创 2021-09-08 17:03:43 · 61 阅读 · 0 评论 -
实现js的new语法
前言使用new调用一个函数,或者当class的constructor调用时,以下的操作将会被自动执行。创建一个新的空对象obj让obj继承构造函数的原型绑定构造函数的this为空对象,并执行。如果执行构造函数后返回了实例则返回这个实例,否则返回obj具体的代码实现如下function createNew() { let obj = Object.create(null); let con = [].shift.apply(arguments); obj.__proto__ =原创 2021-08-02 09:50:21 · 91 阅读 · 0 评论 -
从零手写js的Promise
从零手写Promise前言Promise是ES6异步编程的一种解决方式。这篇文章从最基本的概念,一层一层分析,一步一步实现Promise。希望大家看完能都能轻松掌握Promise的原理。概述Promise是一个异步编程的方法。与传统的callback实现异步相比,Promise能使你的代码更具可读性。在ES6中Promise被加入到javascript中,它主要有以下两个主要特征:Promise有三种状态:pending、fulfilled、rejected。并且它的状态不受外界的影响P原创 2021-07-28 11:55:24 · 88 阅读 · 0 评论