>웹 프론트엔드 >JS 튜토리얼 >고치에서 벗겨내는 jquery 소스 코드 - jquery 최소화

고치에서 벗겨내는 jquery 소스 코드 - jquery 최소화

高洛峰
高洛峰원래의
2016-12-01 13:22:381186검색

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>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.