SOURCE

var personArr = [
    {name: '王港', des: '颈椎不好', sex: 'm'},
    {name: '刘莹', des: '我是谁', sex: 'f'},
    {name: '王秀莹', des: '我很好看', sex: 'f'},
    {name: '刘金雷', des: '你没见过陌生的脸', sex: 'm'},
    {name: '刘飞翔', des: '瓜皮刘', sex: 'm'},
];

var obj = {name: 'chenjie'};


//  模拟forEach

// arr.forEach(function(ele, index, arr){}, obj)
// foreach函数接受了一个函数作为参数,然后循环这个函数, 第二个参数是改变函数内this的指向

Array.prototype.myForEach = function(func) {
    // this => personArr
    var len = this.length;
    // 控制this指向
    var _this = arguments[1] == undefined ? window : arguments[1];
    for(var i = 0; i < len; i++) {
        func.call(_this, this[i], i, this);
    }
}

personArr.myForEach(function(item, index, arr){
    console.log(this);
    console.log(item, index, arr);
})
console 命令行工具 X clear

                    
>
console