假设我有一个简单的函数定义,什么都不做: function fn() { }
现在,当我跑步时,toString(fn)
我得到"[object Object]".当我跑步时,toString.call(fn)
我得到"[对象功能]".有谁知道为什么我在使用这种call
方法时得到更具体的类型?
编辑:此行为在通过FireBug控制台运行的FireFox中展示.既toString.constructor
和toString.call.constructor
产量"功能()".
toString不接受参数,因此toString(fn)
与just相同toString()
,它返回一个隐式全局对象,转换为字符串.toString.call(fn)
调用global.toString
传递函数对象,但由于global.toString
是Object的方法,结果不同于Function.toString
.