今天,开始正式开始搭建本身的前端学习之路,必不可少的固然就是开始搭建本身的知识库了。
好了,废话很少说,想必你们对ES5的forEach方法并不陌生吧,可是你知道他是怎么实现的吗?咱们本身能不能也封装一个这样的方法供咱们本身使用呢。前端
**放上简略版代码:** Array.prototype.forEach = function myForEach(fn = function() {}, direction) { for (let i = 0; i < this.length; i++) { // 此处写 fn.apply(direction, [this[i], i, this])也是能够的哟 // 详细知识就要去看apply,bind,call的相关知识点啦 // direction 表明this的指向 fn.bind(direction, [this[i], i, this])(); } } **运行示例:** // 使用 let arr = [1, 2, 3]; let arr1 = [4, 5, 6]; arr.forEach(function(item, index, a) { // this 指向arr1 console.log('this=', this) }, arr1); **涉及知识点:** 1. forEach(()=>{},direction)中第二个参数的做用(改变函数内的this指向) 2. [1,2,3].forEach(function(item,index,direction) { console.log(item); })封装的思路在哪(this指向的是这个数组,数组要想传入函数就要用到this关键字) 3. apply,this,call的使用,此处用于改变函数this指向。
前端的学习之路漫长,慢慢写做,慢慢成长,咱们一块儿加油哦!数组
这是我第一篇本身的文章,好期待一年后的我还在坚持着写文章哪!app
欢迎各位小伙伴对我批评指正,谢谢!函数