javascript - 为什么在 javascript apply 中给出与直接调用不同的结果?

标签 javascript function

我有以下代码

var d = new Date();
Object.prototype.toString(d); //outputs  "[object Object]"
Object.prototype.toString.apply(d); //outputs "[object Date]"

为什么会有这种差异,这是怎么回事?

编辑:

d.toString() // outputs "Tue Nov 06 2012 ..."

那么“[object Date]”中的Date是从哪里来的。是浏览器的 native 代码起作用了吗?

最佳答案

Object.prototype.toString(d);

Object.prototype 转换为字符串并忽略其参数。在

Object.prototype.ToString.apply(d);

d 作为 this 传递给 ToString 方法(就像 d.toString()toString 引用 Object.prototype.toString 被调用),这是该方法所关注的。

参见 Function#applyObject#toString

关于javascript - 为什么在 javascript apply 中给出与直接调用不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245571/

相关文章:

javascript - 在 AngularJS 中声明 Controller

javascript - 为什么 ChartJS 在此代码段中跳过 xAxis 标签?

javascript - 将 Javascript 正则表达式转换为 PHP 正则表达式?

javascript - CRM 2013 中的可编辑 GridView

php - 将 lang 函数放入 php 字符串中

Scala 并行运行两个函数

javascript - 从 AngularJS Controller 调用 Javascript 函数

javascript - 局部变量在刷新时变为未定义。 Angular 2

python - 如何将函数的python代码打印到终端?

javascript - 转换为 For 循环 JavaScript