今天,开始正式开始搭建自己的前端学习之路,必不可少的当然就是开始搭建自己的知识库了。
好了,废话不多说,想必大家对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指向。
前端的学习之路漫长,慢慢写作,慢慢成长,我们一起加油哦!
这是我第一篇自己的文章,好期待一年后的我还在坚持着写文章哪!
欢迎各位小伙伴对我批评指正,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。