Firebug构造函数vs用户函数

时间:2010-10-19 20:01:20

标签: javascript dom function firebug

我快速搜索了Firebug DOM选项卡着色的含义,我看到下面的解释from here

  

红色粗体文字点“构造函数”

     

绿色粗体文字指向“用户功能”。

这两种功能有什么区别?

2 个答案:

答案 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中确实没有“构造函数”这样的东西,只是可以用作构造函数的函数。任何函数都可以用来创建对象,但是如果函数有原型,它才真正有用。