随笔分类 -  JavaScript功能实现

实现javascript一些本来就有的功能,学习原理,加深印象
摘要:一、new做了什么 1.创建了一个全新的对象。 2.这个对象会被执行[[Prototype]](也就是__proto__)链接。 3.生成的新对象会绑定到函数调用的this。 4.通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。 5.如果函数没有返 阅读全文
posted @ 2019-09-26 12:31 来亦何哀 阅读(768) 评论(0) 推荐(0)
摘要:返回一个函数,供后面调用,参数就是后面调用时传入的参数。 今天在群里看到一位群友发的一个题目,我看解法就是用柯里化,我原来学习过,但是工作中用的非常少,如今又复习了一遍,使我受益匪浅。 阅读全文
posted @ 2019-06-25 22:38 来亦何哀 阅读(128) 评论(0) 推荐(0)
摘要:const partialFunc = (func, ...args) => { let placeholdsNum = 0 return (...args2) => { args2.forEach(arg => { // 查找值为_的下标 let index = ar... 阅读全文
posted @ 2019-06-25 22:35 来亦何哀 阅读(144) 评论(0) 推荐(0)
摘要:// 循环实现数组 filter 方法 const selfFilter = function (fn, context){ // 如果调用的地方使用箭头函数,这里的this岂不是不对了,那该怎么解决呢 let arr = Array.prototype.slice.call(this) le... 阅读全文
posted @ 2019-06-25 17:00 来亦何哀 阅读(1271) 评论(1) 推荐(0)
摘要://使用 reduce 实现数组 map 方法 const selfMap2 = function (fn, context){ let arr = Array.prototype.slice.call(this) // 这种实现方法和循环的实现方法有异曲同工之妙,利用reduce contact起数组中每一项 // 不过这种有个弊端,... 阅读全文
posted @ 2019-06-24 23:03 来亦何哀 阅读(1995) 评论(0) 推荐(0)
摘要://循环实现数组 map 方法 const selfMap = function (fn, context) { let arr = Array.prototype.slice.call(this) //map方法不会改变原数组 let mappedArr = Array(arr.length) / 阅读全文
posted @ 2019-06-24 22:41 来亦何哀 阅读(486) 评论(0) 推荐(0)