为什会出现这种情况
console.log.apply(console.log, [12,34,5])
// 打印的是数组里的值 12 34 5
console.log([12,34,5])
// 打印的是一个数组 [12, 34, 5]
为什会出现这种情况
console.log.apply(console.log, [12,34,5])
// 打印的是数组里的值 12 34 5
console.log([12,34,5])
// 打印的是一个数组 [12, 34, 5]
console.log() // 控制台输出
fn.apply(thisArg, [argsArray]) // this值,数组或类数组 传递给fn函数的是argsArray的的元素
元素依次为 12 34 5
console.log(12,34,5)
懂了么?
我的理解是,当函数调用fn.apply(context, ArrayLikeObj)
相当于fn(...ArrayLikeObj)
console.log.apply(console.log, [12,34,5])相当于
function log(a) {
console.log(a)
}
console.log.apply(log, [12,34,5])
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.1k 阅读✓ 已解决
apply传参本身就是数组。
console.log.apply(console.log, [12,34,5])相当于
console.log(12,34,5);
要打印数组应该这样:
console.log.apply(console.log, [[12,34,5]])