【问题标题】:Why do I need to pass null as an argument in function.apply(null, arguments)? [duplicate]为什么我需要在 function.apply(null, arguments) 中将 null 作为参数传递? [复制]
【发布时间】:2019-02-06 12:28:32
【问题描述】:

我正在尝试一些基本的 JS 功能:

function addUser(name, age, fun) {
    fun.apply(null, arguments); }

addUser("Peter",25, function(name) { console.log(name+"...from Function");});

但我似乎不明白为什么fun.apply(null, arguments); 中的第一个参数必须是null,为什么我不能简单地使用fun.apply(arguments);

【问题讨论】:

  • 因为那不是function signature。你不妨问“为什么我不能简单地做addUser(25)?”

标签: javascript functional-programming


【解决方案1】:

apply 的第一个参数是this 对象。你不必传递null,你也可以传递this或任何其他对象,但你不能只传递arguments,因为那样arguments将成为你的this对象函数和name 不会得到值。

请注意,对于此示例,您可以只调用 fun(name) 而不是 fun.apply(null, arguments)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 2013-10-25
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2019-11-28
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多