一起写轮子
文章平均质量分 87
zyccode
前端修仙中...
展开
-
如何通过100行代码实现一个迷你router?
知识储备如何操作浏览器地址?我们可以使用下面三种方法,来修改浏览器的地址location.assign(url)window.location = urllocation.href = url(常见)修改以下location对象的属性值,会导致当前页面重新加载// 假如当前url为:https://www.example.com/// 把url修改为:https://www.example.com/?t=examplelocation.search = '?t=example';原创 2021-03-21 22:31:25 · 222 阅读 · 1 评论 -
「一起造轮子」从1.9k的jsonp库出发一起实现jsonp
1. 什么是jsonp?下方是维基百科对JSON的解释从这个解释中,我们可以知道,完成jsonp需要的步骤主要有以下两点:向页面中插入一个带有请求链接的<script>标签通过回调函数,获取需要的JSON数据2. jsonp库是如何实现的?jsonp是一个star数1.9k的仓库,实现了一个简单的jsonp方法jsonp仓库传送门2.1 传入参数url传入的url就是需要请求的链接地址optsparam:传入的是缀在链接后的参数,默认为callbacktime原创 2021-01-27 10:41:11 · 208 阅读 · 0 评论 -
「一起造轮子」三种写法实现instanceof
instanceof的定义是什么?instanceof在MDN的定义如下:标准中实现instanceof过程如果实例对象(也就是左边传入的值left)__proto__不是强等于构造函数(也就是右边传入的值right)的prototype,就一直朝着实例对象的原型链往上找,直到找到null为止,就证明构造函数的prototype属性并没有出现在实例对象的原型链上。可以结合下方的示意图来理解一下(图片来自于:mollypages.org)下面的三种写法均基于这个思想:while循环写法fu原创 2021-01-25 23:54:45 · 253 阅读 · 0 评论 -
「一起写轮子」14问带你实现apply和call
由于call和apply只是入参时的差别,因此只要搞定了call,apply就迎刃而解了。在实现call之前,我们需要搞清楚下面的一些问题:什么是call?call的定义是什么?下面是MDN对call的定义:原版:中文:call的参数是什么?下面是MDN对call参数的解释:原版:中文:第一个参数是thisArg,就是我们在定义中提到的,指定的this值。这里有个需要注意的地方就是:在非严格模式下,当this为null或者undefined时,将会自动替换为全局对象。cal原创 2021-01-25 01:10:50 · 165 阅读 · 0 评论