今天,開始正式開始搭建本身的前端學習之路,必不可少的固然就是開始搭建本身的知識庫了。
好了,廢話很少說,想必你們對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
歡迎各位小夥伴對我批評指正,謝謝!函數