本日,最先正式最先搭建本身的前端进修之路,必不可少的固然就是最先搭建本身的学问库了。
好了,空话不多说,想必人人对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指向。
前端的进修之路冗长,逐步写作,逐步生长,我们一同加油哦!
这是我第一篇本身的文章,好期待一年后的我还在坚持着写文章哪!
迎接列位小伙伴对我批评指正,感谢!