【发布时间】:2015-02-23 15:23:32
【问题描述】:
我遇到了不寻常的情况。我存储了对Object.prototype.toString.call 的引用,以尝试创建快捷方式,将其作为分配的变量调用会导致TypeError,而每次都直接调用它不会。
谁能解释实际发生的事情,而不是我认为我正在做的事情?
var toString = Object.prototype.toString.call;
toString({}); //Uncaught TypeError: undefined is not a function
而以下工作:
var toString = Object.prototype.toString;
toString.call({});
非常感谢。
【问题讨论】:
-
你想要
var toString = Function.prototype.call.bind(Object.prototype.toString) -
因为
call期望在函数上被调用:Function.prototype.call.call(Object.prototype.toString, {})有效
标签: javascript reference prototype this typeerror