function toString(obj) {
return {}.toString.call(obj);
}
我在一些开源的javascript项目中看到了这个功能。这个功能的目的是什么?
答案 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()
。