Number.call(Number, undefined, 0) NAN
Number.call.call(Number, undefined, 0) 0
NaN和0
call 的第一个参数用于改变上下文,由于没有用到 this,第一个参数 Number 实际上没有用。
Number.call(Number, undefined, 0) 等价于 Number(undefined, 0),由于 Number 只会接受第一个参数。Number.call.call(Number, undefined, 0) 等价于 Number.call(undefined, 0),也就是 Number(0)。Number.call.call(Number, undefined, 0);
// 相当于
var f = Number.call;
f.call(Number, undefined, 0);
// 再简化下就是
Number.call(undefined, 0);
// 也就是
Number(0);
Most helpful comment
call 的第一个参数用于改变上下文,由于没有用到
this,第一个参数 Number 实际上没有用。Number.call(Number, undefined, 0)等价于Number(undefined, 0),由于 Number 只会接受第一个参数。Number.call.call(Number, undefined, 0)等价于Number.call(undefined, 0),也就是Number(0)。