2

函数jQuery()是工厂函数。我可以将它用作构造函数吗?

var ax = jQuery('a');
var bx = new jQuery('a');

它们有相同的含义吗?新对象继承谁的原型对象?

(我保证:我不会在现实生活中将它用作构造函数)

4

2 回答 2

4

没有区别,因为它所做的只是返回一些东西:

// Define a local copy of jQuery
jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context, rootjQuery );
},

如果构造函数返回别的东西另一个对象,这就是返回的内容,并且构造的对象被丢弃。所以......不要使用new jQuery!:)

于 2012-09-10T00:52:34.350 回答
2

没关系,因为jQuery()内部会返回一个新的构造jQuery对象。

但是,我建议您只使用jQuery()(不带new运算符)。

于 2012-09-10T00:54:21.320 回答