我如何理解javascript内置函数的调用和绑定行为

我如何理解javascript内置函数的调用和绑定行为,javascript,bind,Javascript,Bind,我试图理解这个代码数组(8).填充(0).映射(Number.call,Number)。问题是,这种行为很难理解,因为无法看到数字的实现。如果您尝试使用.toString编号,它只会显示“本机代码”。对内置函数使用bind和call也是如此。我怎样才能知道这应该是怎样的呢?如果您想详细了解Number的工作原理,请查看它的功能 如果您想知道Number通常是如何工作的,请查看它的 基本上,Number(value)所做的就是将value转换为数字类型。没有别的了 我相信要理解这段代码,您需要了解

我试图理解这个代码<代码>数组(8).填充(0).映射(Number.call,Number)。问题是,这种行为很难理解,因为无法看到数字的实现。如果您尝试使用.toString编号,它只会显示“本机代码”。对内置函数使用bind和call也是如此。我怎样才能知道这应该是怎样的呢?

如果您想详细了解
Number
的工作原理,请查看它的功能


如果您想知道
Number
通常是如何工作的,请查看它的

基本上,
Number(value)
所做的就是将
value
转换为数字类型。没有别的了

我相信要理解这段代码,您需要了解的实际上是关于而不是
Number

当我们将上面的代码翻译成一个不那么花哨的代码时,我们得到了大致如下的结果(这对于下面的解释很重要):

console.log(
数组(8).填充(0).映射(Function.prototype.call,Number)

);
你可以参考一下,我在哪里可以找到标准函数的等效JS植入?因此在
.map(Number.call,Number)
中,
Number.call中的
Number
可以替换为任何函数名,这不会有什么区别,因为它只是访问
。调用
?@GirkovArpa是正确的。您可以编写
数组(8).填充(0).映射(Boolean.call,Number)
,但仍然可以得到相同的结果result@yqlim为什么Number.call只是Function.prototype.call?我猜,当它计算
Number.cal(val,index,arraystate)
时,它首先进入调用代码,调用代码执行类似于
的操作。(val,index,arraystate)
,因为这是现在的
Number
,它进入该调用。我真正想了解的是,在JavaScript中,您不仅可以根据函数的行为(输入输出)还可以根据函数的实现(如何使用)与函数进行交互,如果我想使用
toString
来寻找实现,那么我得到的只是
[本机代码]
--也感谢您的回复。@peterduffy
Number.call
Function.prototype.call
,因为
Number instanceof Function
是真的。
.call
方法继承自
函数
类。至于实现细节,不同的JS引擎有不同的实现,但它们都遵循我上面链接的方法,但是如果你真的感兴趣,你可以搜索开源引擎的代码。