覆盖toString函数

时间:2015-04-15 01:52:50

标签: javascript tostring

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

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

3 个答案:

答案 0 :(得分:2)

让我们轮流拍摄每个组件:

return会返回call函数返回的任何值。

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

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

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

答案 1 :(得分:1)

在数字和字符串上使用时会产生[object Number][object String]之类的结果,但其确切目的取决于它的使用方式。

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

它可以用作识别未知变量类型的方法,是typeof的更复杂的替代方法,因为它返回[object HTMLBodyElement]

之类的结果

答案 2 :(得分:1)

jsve's answer为您提供了什么'。 '为什么'是:在输入对象上使用基础Object.toString(),即使该对象的原型具有更专业的toString()