JS:.apply(null,arguments)——为什么我的函数被调用一次,而console.log被调用多次
JS: .apply(null, arguments) -- Why is my function called once, whilst console.log called many times?
我正在阅读优秀的Eloquent Javascript的第5章。
我正在尝试理解.apply函数。
JavaScript函数有一个应用方法。您向它传递一个参数数组(或类似数组的对象),它将使用这些参数调用函数。
给出的例子是:
function transparentWrapping(f) {
return function() {
return f.apply(null, arguments);
};
}
我自己尝试了一下,写下了这样的话:
function doIt(f) {
return function(arg) { return f.apply(null, arguments) };
}
doIt(console.log)("Hello there!","Hi!","Hello!!", "Testing");
输出为:
Hello there! Hi! Hello!! Testing
但是,如果我把console.log换成我自己的功能:
function logIt(arg) {
console.log(arg+"'r");
}
doIt(logIt)("Hello there!","Hi!","Hello!!", "Testing");
logIt()函数似乎只针对第一个参数调用。输出为:
Hello there!
为什么为每个参数调用console.log,而只为第一个参数调用logIt?
console.log
。它只是一个函数,它对传递的每个参数都做一些事情。它只被调用一次。
console.log("Hello there!","Hi!","Hello!!", "Testing");
如果多次调用:
console.log("Hello there!");
console.log("Hi!");
console.log("Hello!!");
console.log("Testing");
…然后输出会将每个字符串放在一个单独的行上。
另一方面,logIt
只对您传递的第一个参数执行任何操作。
logIt("Hello there!","Hi!","Hello!!", "Testing");
相关文章:
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Angular 1.5变量在调用一次之前不起作用
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- Javascript 计时器只调用一次 Code 隐藏方法
- 一段时间后调用函数,但只调用一次
- 每隔1秒调用一次jQueryajax是否安全
- 什么时候函数只能调用一次
- 如何在重复满足条件时调用一次辅助函数
- JS:.apply(null,arguments)——为什么我的函数被调用一次,而console.log被调用多次
- Angular指令删除只调用一次的DOM元素
- 对于新建的元素,onchange函数只调用一次
- ASP.NET:每5分钟从代码后面调用一次弹出窗口
- 每10秒调用一次页面加载事件
- 调用一次jQuery函数
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- 如何只调用一次事件处理程序,而不是每次单击项目时调用事件处理程序
- 回调函数不会在使用 $timeout 的服务中只调用一次
- Angular 1.5.0 - 为什么工厂只调用一次
- 仅调用一次 onkeyup 函数