jQuery 소스 코드 학습

8000 단어 jquery
<!--
.titleTop{width:98%;margin:0 auto; background:rgb(31,123,155);border-radius:5px;color:white;font-family:"마이크로소프트 아 흑";font-size:18px; height:40px;line-height:40px; padding-left:10px;}
-->
1 신규 구축 없 음
jQuery 가 사용 하 는 방식 은$(obj).html().attr()입 니 다.또는 jQuery(obj).html().attr()
형식 상$()또는 jQuery()
js 함수 의 실현 방식 을 먼저 봅 니 다.
var Jackey = function(){
    //    
    };
Jackey.prototype={
    //  
    name:function(){
        console.log("Jackey");
        },
    age:20
    };
//    
var jackey = new Jackey();
jackey.name();  //Jackey

그런데 어떻게 하면 new 를 생략 할 수 있 을까요?어떻게 해야만 Jackey().name()을 실현 할 수 있 습 니까?
구조 함수 가 원형 으로 돌아 가도 록 수정 합 시다.
var Jackey = function(){
    //    
    return Jackey.prototype;
    };
Jackey.prototype={
    //  
    name:function(){
        console.log("Jackey");
        },
    age:20
    };
//    
//var jackey = new Jackey();
Jackey().name();//Jackey   

다시 한 번 수정 하 다
var $ = Jackey = function(){
    //    
    return Jackey.prototype;
    };
$.fn = Jackey.prototype={
    //  
    name:function(){
        console.log(this.age);
        },
    age:20
    };
//    
//var jackey = new Jackey();
$().name();// jQuery          ,    jquery   ?   :  

우리 다시 이런 글 씨 를 써 보 자.
var $ = Jackey = function(){
    //    
    return Jackey.prototype.init();
    };
$.fn = Jackey.prototype={
    //  
    init:function(){
            return this;
        },
    name:function(){
        console.log(this.age);
        },
    age:20
    };
//    
//var jackey = new Jackey();
$().name();//20 

이러한 문법 은 구조 함수 가 원형의 init 를 되 돌려 주 고 원형의 작용 역 을 가리 키 며 Jackey()의 실례 를 되 돌려 주지 만 this 가 가리 키 는 작용 역 문 제 는 약간 헷 갈 린 다.
var $ = Jackey = function(){
    //    
    return Jackey.prototype.init();
    };
$.fn = Jackey.prototype={
    //  
    init:function(){
        this.age = 22;
            return this;
        },
    name:function(){
        console.log(this.age);
        },
    age:20
    };
//    
//var jackey = new Jackey();
$().name();    //22        20 ,     22.   init()    init()      age,     init   age,    20.

이렇게 하면 우리 가 당초 예 상 했 던 것 과 그다지 부합 되 지 않 는 다.다시 고치다
분리 작용 영역
var $ = Jackey = function(){
    //    
    return new Jackey.prototype.init();
    };
$.fn = Jackey.prototype={
    //  
    init:function(){
            return this;
        },
    name:function(){
        console.log(this.age);
        },
    age:20
    };
    Jackey.prototype.init.prototype = Jackey.prototype;
//    
//var jackey = new Jackey();
$().name();//20

 

좋은 웹페이지 즐겨찾기