【发布时间】:2014-10-08 17:46:50
【问题描述】:
我已经看到变量的实例既是对象又是字符串。示例:
alert(x + ""); // Hello
alert(x()); // World
这种事情就是 jQuery 对$ 变量所做的。
你如何获得这种效果?
【问题讨论】:
-
您不像在第一个示例中那样使用 jQuery 的
$。 jQuery 的$只是一个函数,它也有属性(可能是函数本身)。答案中提到的toString很少被覆盖。 -
你确定这就是 jQuery 所做的吗?上次我查看时,它的许多(大多数?)方法都被重载了,并且根据它们是否传递了函数、对象、字符串等来执行操作,而不是覆盖或替换内置方法。
-
另外,jQuery not 会覆盖
toString(尽管它无论如何都没有用)。您只需在 SO 上打开控制台并输入$.toString()或通过$.toString === Function.prototype.toString确认,即可看到true。 -
jQuery 允许你做
$.xyz();或$(".abc").xyz();。这就是我所说的。 -
@tupperkion 任何函数都可以有属性,因为函数是对象。
标签: javascript variables object