繁体   English   中英

从返回的函数中调用function.apply不会传递参数

[英]Call function.apply from within a returned function does not pass arguments

我需要使用任意参数列表来调用不同数量的函数。

一般用例是将格式设置功能分配给生成的表中的不同单元。 我需要能够调用多个格式化程序,但是我只能分配一个格式化函数,因此可以指定multi()。

从multi返回的函数将用作具有一组参数的实际格式化程序,这些参数需要传递给每个单独的格式化程序。

    function multi(){
        var fns = arguments;
        return function(){
            var params = arguments;

            console.log(params);

            _.each(fns, function(fn){
                    fn.apply(params);
            }, this);
        };
    };

问题:'params'中的参数在multi()中可用,但实际上并未传递给所应用的函数。 这些参数可用于console.log()调用,但未定义实际功能。

您可以检查此垃圾箱以获取此问题的示例: http : //jsbin.com/pekomopi/1/edit

谢谢!

apply函数接受两个参数。 第一个参数是函数的this 第二个参数是参数数组。

您所要做的就是将行更改为fn.apply(this, params) 有了this对象,您想成为fnthis

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM