function toString(obj) {
return {}.toString.call(obj);
}
我在一些开源的javascript项目中看到了这个函数。这个功能的目的是什么?覆盖toString函数
function toString(obj) {
return {}.toString.call(obj);
}
我在一些开源的javascript项目中看到了这个函数。这个功能的目的是什么?覆盖toString函数
它在数字和字符串上使用时会产生类似[object Number]
或[object String]
的结果,但其确切用途取决于它的使用方式。
在你正在查看的代码中查找它的用法的例子,这应该让你更好地了解它的用途。
它可以作为一种方法来识别未知变量的类型更复杂的替代typeof
,因为它返回类似[object HTMLBodyElement]
让我们每个组件依次为:
return
:返回任何值call
函数返回。
{}
:这声明了一个空对象。
.toString
:toString
功能对每个对象。
.call
:方法调用与给定this
值的函数(见MDN Documentation)。在这种情况下,this
是传递给toString
函数的obj
。
jsve's answer结果为您提供了“是什么”。 '为什么'是:在输入对象上使用基地Object.toString()
,即使该对象自己的原型具有更专门的toString()
。