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>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章