优显汽车网
您的当前位置:首页jquery源码抽丝剥茧--把jquery最小化

jquery源码抽丝剥茧--把jquery最小化

来源:优显汽车网


js代码:

(function(){
var jQuery = window.jQuery = function( selector, context ) { 
 return new jQuery.prototype.init( selector, context );
}; 
 
window.$ = jQuery; 
 
jQuery.fn = jQuery.prototype = {
 init: function( selector, context ) {
 var elem = document.getElementById(selector);
 if ( elem ) {
 this[0] = elem;
 this.length = 1;
 return this;
 } 
 },
 append: function() {
 alert(arguments[0]);
 } 
};
//为后面的实例化,将jQuery.prototype赋给jQuery.prototype.init.prototype,这个很重要
jQuery.prototype.init.prototype = jQuery.prototype;
 
jQuery.extend = jQuery.fn.extend = function() { 
 var target = arguments[0], length = arguments.length;
 
 if ( length == 1 ) { 
 target = this; //这里很重要,this给target,才能使用$.
 i = 0;
 }
 
 if ( (options = arguments[0]) != null ) {
 for ( var name in options ) {
 if ( options[ name ] != undefined ) {
 target[ name ] = options[ name ];
 }
 
 }
 }
 return target;
}; 
 
jQuery.extend({
 isFunction: function( fn ) {
 return !!fn && typeof fn != "string" && !fn.nodeName && 
 fn.constructor != Array && /function/i.test( fn + "" );
 } 
});
})();

html代码:

<html>
<head>
<script type="text/javascript" src="jmin.js"></script>
 
</head>
<body>
<div id="did"></div> 
<script type="text/javascript">
function f(){};
$("#did").append("<div>append</div>");
alert($.isFunction(f));
</script>
</body>
</html>
显示全文