首页 > 代码库 > 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="http://www.mamicode.com/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>


本文出自 “不死的小强” 博客,请务必保留此出处http://qianray.blog.51cto.com/4607992/1878306

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