答案 0 :(得分:1)
jQuery
函数是构造函数($
仅仅是对jQuery
的引用)。当你看到它的定义时,你可以看到:
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
},
…
jQuery.fn = jQuery.prototype = {
init: function( …
在定义构造函数和向其原型对象添加内容时,可以重现此行为(粗体红色),例如
var testFunc = function () {
/* nothing so far */
};
testFunc.prototype.baz = function () {
/* nothing, this gets boring */
};
甚至只是一个随机数
testFunc.prototype.baz = 4;
请注意,这不符合JavaScript中constructor function的实际定义。如果您在Firebug中测试链接的源代码,car
将显示为绿色,而不是红色。此外,请参阅The Benefits of JavaScript Prototype。
答案 1 :(得分:1)
正如Marcel的例子所示,Firebug标记的对象类型为“function”,并且具有属性'prototype',其中至少有一个子属性为'userClass'
http://code.google.com/p/fbug/source/browse/branches/firebug1.7/content/firebug/dom.js#431
Javascript中确实没有“构造函数”这样的东西,只是可以用作构造函数的函数。任何函数都可以用来创建对象,但是如果函数有原型,它才真正有用。