我正在尝试一些基本的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);
?
答案 0 :(得分:1)
apply
的第一个参数是this
对象。您不必传递null
,也可以传递this
或任何其他对象,但是您不能仅传递arguments
本身,因为这样arguments
将成为函数中的this
对象,而name
将不会获得值。
请注意,在此示例中,您可以仅调用fun(name)
而不是fun.apply(null, arguments)
。