我有以下代码
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
被调用),这是该方法所关注的。
关于javascript - 为什么在 javascript apply 中给出与直接调用不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245571/