패키지 함수 와 호출

8363 단어 js
js 에서 class 여러 함수 의 패 키 징 방법




  class       



// indexOf function indexOf(arr,value,start){ // start, start 0 if(arguments.length == 2){ start = 0; } // indexOf , indexOf if(arr.indexOf){ return arr.indexOf(value,start); } for( var i = 0; i < arr.length; i++){ if(arr[i] === value){ return i; } } return -1; } // function noRepeat(arr){ var result = []; for( var i = 0; i < arr.length; i++){ if(indexOf(result,arr[i]) == -1){ result.push(arr[i]); } } return result; } //inArray function inArray(arr,value){ for(var i = 0; i < arr.length; i++){ if(arr[i] === value){ return true; } } return false; } // function trim(arr){ var result = arr.replace(/^\s+|\s+$/g,''); return result; } //getElementsByClassName function getElementsByClassName(parentObj,classStr){ var result = []; var objs = parentObj.getElementsByTagName('*'); // classStr , class var targetArr1 = noRepeat(trim(classStr).split(/\s+/)); // classStr , class var targetArr2 = noRepeat(trim(classStr).split(/\s*,\s*/)); if(classStr.indexOf(',') == -1 ){ // class label: for(var i = 0; i < objs.length; i++){ var arr = noRepeat(trim(objs[i].className).split(/\s+/)); for( var j = 0; j < targetArr1.length; j++){ if(!inArray(arr,targetArr1[j])){ continue label; } } result.push(objs[i]); } return result; }else{ // label: for(var i = 0; i < objs.length; i++){ var arr = noRepeat(trim(objs[i].className).split(/\s+/)); for( var j = 0; j < targetArr2.length; j++){ if(inArray(arr,targetArr2[j])){ result.push(objs[i]); continue label; } } } return result; } } //addclass function addClass(obj,classStr){ var array = noRepeat(trim(obj.className).split('\s+')); if(!inArray(array,classStr)){ array.push(classStr); } obj.className = array.join(' '); return obj; } //removeclass function removeClass(obj,classStr){ var array = noRepeat(trim(obj.className).split('\s+')); var index = indexOf(array,classStr); if(index != -1){ classStr.splice(index,1); obj.className = classStr.join(' '); } return obj; } //toggleClass function toggleClass(obj,classStr){ var array = noRepeat(trim(obj.className).split('\s+')); if(inArray(array,classStr)){ removeClass(obj,classStr); }else{ addClass(obj,classStr); } }

js 함수 호출 의 네 가지 방법
js 의 함수 호출 은 두 개의 인 자 를 무료 로 보 냅 니 다. 바로 this 와 arguments 입 니 다.arguments 는 매개 변수 그룹 입 니 다. 그 는 실제 배열 이 아니 지만. length 방법 으로 길 이 를 얻 을 수 있 습 니 다.
책 에 4 중 호출 방식 이 있다.
방법 호출 모드 함수 호출 모드 구조 기 호출 모드 apply 호출 모드 다음은 실례 를 좀 살 펴 보 자.
1: 방법 호출 모드.
this 가 my object 를 가리 키 는 것 을 주의 하 십시오.
/*      */
    var myobject={
            value:0,
            inc:function(){
                    alert(this.value)
                }
        }
    myobject.inc()

2: 함수 호출 모드
이 때 가 window 를 가리 키 는 것 을 주의 하 십시오.
/*      */
    
    var add=function(a,b){
        alert(this)//this    window
            return a+b;
        }
    var sum=add(3,4);
    alert(sum)

3: 구조 기 호출 모드
javascript 언어 정수 라 는 책 은 이 방식 을 버 리 는 것 을 권장 합 니 다.더 좋 은 방법 이 있 으 니까.여기 소개 안 할 게 요.다음 에 박문 발표 할 때 붙 여.
여기에 연결 을 추가 할 겁 니 다.
/*           */
    
    var quo=function(string){
            this.status=string;
        }
    quo.prototype.get_status=function(){
            return this.status;
        }
    var qq=new quo("aaa");
    alert(qq.get_status());


4: apply 호출 모드
= = 더 유용 한 apply 인 스 턴 스 를 볼 수 있 습 니 다.맨 아래 코드 봐.
/*apply*/
    //        sum  
    // myobject
    //               this     。
    //apply        this        
    var arr=[10,20];
    var sum=add.apply(myobject,arr);
    alert(sum);

 
이거 봐.bind 이것 은 바 인 딩 시간의 함수 입 니 다.
var bind=function(object,type,fn){
            if(object.attachEvent){//IE   
                    object.attachEvent("on"+type,(function(){
                                                           return function(event){
                                                               window.event.cancelBubble=true;//      
                                                               object.attachEvent=[fn.apply(object)];//----         
                                                               // IE  attachEvent          。
                                                               //this      object      。     function  this.id        。
                                                               //       fn.apply(object)
                                                               //          apply         this       object  this.id    
                                                               //object.id        。
                                                               
                                                               }
                                                           })(object),false);
                }else if(object.addEventListener){//     
                        object.addEventListener(type,function(event){
                                                              event.stopPropagation();//      
                                                              fn.apply(this)
                                                              });
                    }
            
        }
    bind(document.getElementById("aaa"),"click",function(){alert(this.id)}); 

내 가 좋아 하 는


	
		
		
		<style>  
			body{  
			  margin: 0;
			 
			} 
			.box{
				width: 400px;
				height: 200px;
				margin: 200px auto;
			} 
			li{ 
				float: left;
				margin-left: 10px; 
			    height: 20px;  
			    width: 50px;
			    background: green;
			    list-style: none;
			}  
		</style>
	
	
		<botton id="aa">  </botton>
		<div class="box" id="box">  
		  <ul class="list">  
		    <li>11</li>  
		    <li>22</li>  
		    <li33>  
		    <li>44</li>  
		    <li>55</li>  
		    <li>66</li>  
		  </li33></ul>  
		</div>  
		<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"/>
		<script>
            var myOpinion = myOpinion || {};
            myOpinion.prototype={
                 init:function(obj,i){
                           alert(obj+'hello');
                 },
                 closeWindow:function(obj,d){
                       obj.click(function(){
                            d.hide();
                        });
                 }
            }
            
            $(function(){
                var my = myOpinion.prototype;
                my.init($("#box"),$(".list"));             
                my.closeWindow($("#aa"),$(".list li"));

            });            

		</script>
	


</code></pre> 
  <p><br/></p> 
  <p><span style="font-size:14px;"><br/></span></p> 
  <p><span style="font-size:14px;">       :<em><span style="color:#999999;">http://blog.csdn.net/xi_2130/article/details/50276025#comments</span></em></span></p> 
   
  <p><br/></p> 
  <p><br/></p> 
  <br/> 
 </div> 
</div>
                            </div>
                        </div>

좋은 웹페이지 즐겨찾기