Javascript 重写toString函数

Javascript 重写toString函数,javascript,tostring,Javascript,Tostring,我在一些开源javascript项目中看到了这个函数。此功能的用途是什么?让我们依次查看每个组件: return:返回调用函数返回的任何值 {}:这声明了一个空对象 .toString:每个对象上的toString函数 .call:方法调用具有给定此值的函数,请参阅。在本例中,这是传递到toString函数的obj。让我们依次处理每个组件: return:返回调用函数返回的任何值 {}:这声明了一个空对象 .toString:每个对象上的toString函数 .call:方法调用具有给定此值的函

我在一些开源javascript项目中看到了这个函数。此功能的用途是什么?

让我们依次查看每个组件:

return:返回调用函数返回的任何值

{}:这声明了一个空对象

.toString:每个对象上的toString函数


.call:方法调用具有给定此值的函数,请参阅。在本例中,这是传递到toString函数的obj。

让我们依次处理每个组件:

return:返回调用函数返回的任何值

{}:这声明了一个空对象

.toString:每个对象上的toString函数

.call:方法调用具有给定此值的函数,请参阅。在这种情况下,这是传递给toString函数的obj。

当用于数字和字符串时,它会产生类似[object Number]或[object String]的结果,但其确切用途取决于它的使用方式

在您正在查看的代码中查找它的用法示例,这会让您更好地了解它的用途

它可以作为一种方法来识别未知变量的类型,一种比typeof更复杂的替代方法,因为它返回像[object HTMLBodyElement]这样的结果。

当对数字和字符串使用时,它会产生像[object Number]或[object String]这样的结果,但它的确切用途取决于它的使用方式

在您正在查看的代码中查找它的用法示例,这会让您更好地了解它的用途

它可以作为一种识别未知变量类型的方法,一种比typeof更复杂的替代方法,因为它返回的结果类似于[object HTMLBodyElement]

给出的“what”。“为什么”是:在输入对象上使用base Object.toString,即使该对象自己的原型有一个更专门的toString。

给出了“what”。“为什么”是:在输入对象上使用base Object.toString,即使该对象自己的原型有一个更专门的toString

function toString(obj) {
        return {}.toString.call(obj);
    }