我想把this当做函数传递到each(breakCall)函数中,请问这样写为什么错了?如何才能写对?

yld2017 2017-05-22 04:46:53

<script type="text/javascript">
/*
breakCall
函数体
function(v){alert(v);}
*/
function each(breakCall)
{
for (var i = 0; i < this.length; i++)
{
breakCall(this[i]);
}
}
Array.prototype.unique = function(){
var result = [];
this.each(function(v1){
//alert(v);
if(result.indexOf(v1) < 0){
result.push(v1);
}
});
return result;
}
var aay= [1,2,3,2,3];
alert("去重前=="+aay);
aay = aay.unique();
alert("去重后=="+aay);
</script>

...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yld2017 2017-05-22
  • 打赏
  • 举报
回复


/*
breakCall
函数体
function(v){alert(v);}
*/
Array.prototype.each = function(breakCall)
{
    for (var i = 0; i < this.length; i++)
    {
        breakCall(this[i]);
    }
}
Array.prototype.unique = function(){
    var result = [];
    this.each(function(v1){
        //alert(v);
        if(result.indexOf(v1) < 0){
           result.push(v1);
        }
    });
    return result;
}
var aay= [1,2,3,2,3];
alert("去重前=="+aay);
aay = aay.unique();
alert("去重后=="+aay);

天际的海浪 2017-05-22
  • 打赏
  • 举报
回复
each.call(this,function(v1){
cn00439805 2017-05-22
  • 打赏
  • 举报
回复

/*
breakCall
函数体
function(v){alert(v);}
*/
function each(breakCall)
{
    for (var i = 0; i < this.length; i++)
    {
        breakCall(this[i]);
    }
}
Array.prototype.unique = function(){
    var result = [];
    each.call(this,function(v1){
        //alert(v);
        if(result.indexOf(v1) < 0){
           result.push(v1);
        }
    });
    return result;
}
var aay= [1,2,3,2,3];
alert("去重前=="+aay);
aay = aay.unique();
alert("去重后=="+aay);

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧