Javascript 将null传递给Function.call()

Javascript 将null传递给Function.call(),javascript,Javascript,正如您所看到的,我正在尝试使用不同函数的修改参数数组调用函数。我能想到的唯一方法是使用apply()方法并传递切片数组。我的问题是,有没有不同的方法?如果没有,那么我是否可以将null传递给apply(),或者这被认为是错误的做法 我的问题是,有没有不同的方法 不,是JavaScript中唯一能够运行以数组作为参数的函数的方法。但是,您仍然可以使用实际参数和函数: function outerFun(arg1, arg2, arg3){ function innerFun(arg1,

正如您所看到的,我正在尝试使用不同函数的修改参数数组调用函数。我能想到的唯一方法是使用apply()方法并传递切片数组。我的问题是,有没有不同的方法?如果没有,那么我是否可以将null传递给apply(),或者这被认为是错误的做法

我的问题是,有没有不同的方法

不,是JavaScript中唯一能够运行以数组作为参数的函数的方法。但是,您仍然可以使用实际参数和函数:

function outerFun(arg1, arg2, arg3){

    function innerFun(arg1, arg2){
        //do something
    }

    var innerArgs = Array.prototype.slice.call(arguments, 1);
    innerFun.apply(null, innerArgs);
}
如果没有,那么我是否可以将null传递给apply(),或者这被认为是错误的做法

你可以,而且这不算坏习惯。函数的行为就像您在全局上下文中使用它一样。这还使您能够在具有多个参数的函数上使用数组

另见:

  • MDN::

传递null,将此引用到窗口。您想做什么?您是否需要将其作为全局范围?如果没有innerFun功能,恐怕很难回答。我不会投票结束,因为我可能错过了一些东西,但这个问题似乎不够精确。这不管用吗?innerFun(arg2,arg3)为什么要传递参数来调用?你希望你的论点是“这个”吗。调用函数的第一个参数是this设置的值。我听不懂这句话。Object.call的MDN在这个问题上令人困惑。它询问Function.call(null),但在代码示例中不使用它。标题是问一件事,守则是说别的,而正文是指国际海事组织难以理解的守则。也许我错过了什么,如果是的话,我会很高兴被启发。
function outerFunc(arg1, arg2, arg3){
    /* ... */
    innerFun(arg2, arg3);
    /* ... */
}