标题中的问题。我一直想知道并未能从 jQuery 源代码中找到答案。这是如何完成的。
重申一下。在 jQuery 中:“$”如何成为一个函数,例如“$()”以及一个对象“$”。
我可以用一种方式或另一种方式创建它,就像这样......
var $ = function(){
return {each:function(){console.log("Word")}}
}
// $.each(); FAIL!
$().each(); // Word
var $ = {
each:function(){console.log("Word")}
}
$.each(); // Word
//$().each(); FAIL!
从基本功能开始:
var $ = function(expr) { return $.select(expr); }
然后,为其添加额外的功能:
$.select = function(expr)
{
console.log("selecting " + expr);
return $; // TODO: perform selection
};
$.each = function()
{
console.log("Called $.each()");
};
您可以通过查看以下内容了解如何在 jQuery 中使用此模式来源 http://code.jquery.com/jquery-1.4.2.js:
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( selector, context ) {
var match, elem, ret, doc;
// Handle $(""), $(null), or $(undefined)
if ( !selector ) {
return this;
}
// contents of init() here
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)