call方法可以改变this指向
//使用call可以改变this指向
var testCall = function(obj,callback){
callback.call(obj,1);
}
testCall(["一、改变this的指向","二、函数内部可以通过this调用"],function(index){
console.log(this);//["一、改变this的指向", "二、函数内部可以通过this调用"]
console.log(this[index]);//二、函数内部可以通过this调用
})
//不使用call方式调用,没有使用this
看过上面的例子之后,我们来封装一个each方法
var each = function(arr,callback){
for(var index = 0;index<arr.length;index++){
callback.call(arr[index],index,arr[index]);
}
}
each([1,5,3,8],function(index,item){
console.log({index:index,value:item})
// 结果:{index: 0, value: 1}
// {index: 1, value: 5}
// {index: 2, value: 3}
// {index: 3, value: 8}
})
网友评论