javascript - reduce的一个问题
大家讲道理
大家讲道理 2017-04-10 18:00:11
[JavaScript讨论组]
`var _slice = Array.prototype.slice;
    function fn(fn1){
        var a = _slice.call(arguments,1)
        console.log(a);
        return function(){
            var b = _slice.call(arguments);
            console.log(b);
            var arr = a.concat(b);
            console.log(arr);
            return fn1.apply(null,arr)
        }
    }

    function add(c){
        function add1 (prev,next){
            return prev+next;
        };
        return c.reduce(add1)
    }

    // alert(add([2,3]))
    alert(fn(add,1)(2,3))`
    
    
    

是不是访问不到里面的?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
伊谢尔伦

改下 return fn1.apply(null,arr),用 call 试一试,改成 return fn1.call(null,arr)

ps:以后尽量贴代码,不要贴图片,不好修改。

--- 添加内容

apply 也可以,要这样用:

return fn1.apply(null,[arr])

要理解 apply 传入的数组的含义,数组的第一个元素对应函数的第一个参数,以此类推。所以,你的写法是错误的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号