1

前几天我在查看“CamanJS”项目时第一次注意到这一点。这个问题很难解释,除非你自己去做。如果您访问 camanjs.com,然后使用 Firebug 或 Chrome JavaScript 控制台,输入单词Caman并按 Enter。不 Caman()带括号 - 只是Caman. 它将输出:Version 4.1.0, Released 2/12/2013

但如果你看typeof Caman,它只是一个“函数”。那么到底如何让它输出这样的自定义字符串,而不实际调用函数呢?这是通过某种prototype扩展完成的吗?

4

1 回答 1

6

如果函数有自定义toString()方法,就会发生这种情况。

例如:

function x() { }
x.toString = function() { return "Hi there!"; };  
console.log(x)
于 2013-02-22T20:02:23.697 回答