【发布时间】:2018-05-12 12:54:39
【问题描述】:
这是功能代码:
let fn = function() { console.log(arguments) }
let fn2 = function() { fn.apply(null, arguments) }
所以在调用fn2(1,'t',4) 之后得到Arguments { 0: 1, 1: "t", 2: 4, … }。
但是这段代码:
let def = { }
let p = new Promise((s,f)=>{
def.s = function() { s.apply(null, arguments) }
def.f = function() { f.apply(null, arguments) }
})
p.then(function(){
console.log(arguments)
})
调用def.s(1,'T',2)这个Arguments { 0: 1, … }后返回。
在 Chrome 和 Firefox 中尝试过。我错过了什么吗? 谢谢
【问题讨论】:
-
该输出中的
…是什么? -
一个promise的resolve函数接受一个参数,所以
'T'和2是没有意义的 -
...下是隐藏函数和参数对象的其他属性。以 Firefox 为例。
标签: javascript promise arguments apply