Array.prototype.mymap=function(callback){
//this指向的是当前对象st
var arr=this;
var list=[];
for(var i=0;i<arr.length;i++){
list[i]=callback(arr[i],i,arr);
}
return list;
}
var st=[1,2,3,4,5];
var obj=st.mymap(function(value,index,array){
console.log(this);//window
console.log(value, index, array);//输出值 索引 原数组
return value*2;
});
console.log(obj)//[2, 4, 6, 8, 10];
匿名函数里面的this指向window,那么怎么让他指向当前对象呢?
Array.prototype.mymap=function(callback){
//this指向的是当前对象st
var arr=this;
var list=[];
for(var i=0;i<arr.length;i++){
list[i]=callback.apply(arr,[arr[i],i,arr]);
}
return list;
}
var st=[1,2,3,4,5];
var obj=st.mymap(function(value,index,array){
console.log(value, index, array);//输出值 索引 原数组
console.log(this);//[1, 2, 3, 4, 5]
return value*2;
});
console.log(obj)//[2, 4, 6, 8, 10];
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。