JS 기본 방법 구현 JQuery ready () 방법

일단load 이벤트와ready 이벤트의 차이점을 설명해 드릴게요.
HTML 문서 로드 순서:
① HTML 구조 구문 분석
② 외부 스크립트 및 스타일시트 파일 로드
③ 스크립트 코드 해석 및 실행
④ 구성 HTML DOM 모델
⑤ 그림 등 외부 파일 로드
⑥ 페이지 로드 완료
Load 이벤트는 페이지가 로드된 후 트리거됩니다.ready 이벤트는 DOM 모형이 구성되어 외부 파일을 불러오기 전에 터치합니다.
 
JQuery의ready 이벤트는 실제로IE의readystatechange 이벤트와DOM의DOMContentLoaded 이벤트를 봉인합니다. 이 두 이벤트는 모두DOM 트리 구조를 다운로드하고 해석한 후에 터치합니다.코드는 다음과 같습니다.
 <script>
	var $ = ready = window.ready = function(fn){
		if(document.addEventListener){//   IE
			document.addEventListener("DOMContentLoaded",function(){
				//    ,      
				document.removeEventListener("DOMContentLoaded",arguments.callee,false);
				fn();//      
			},false);
		}else if(document.attachEvent){//  IE
			document.attachEvent("onreadystatechange",function(){
				if(document.readyState==="complete"){
					document.detachEvent("onreadystatechange",arguments.callee);
					fn();
				}
			});
		}
	}

	$(function(){alert("ok1");});
  </script>

 
 
추가 1:document.readyState 속성
document.readyState: 문서의 로드 완료 여부를 판단합니다.Firefox는 지원되지 않습니다.
이 속성은 읽기 전용이며 반환 값은 다음과 같습니다.
0-UNINITIALIZED: XML 객체가 생성되었지만 로드된 파일이 없습니다.1-LOADING: 로드 프로그램이 진행 중이지만 파일 해결이 시작되지 않았습니다.2-LOADED: 일부 파일이 로드되고 해결되었지만 객체 모델이 아직 적용되지 않았습니다.3-INTERACTIVE: 로드된 일부 파일에만 유효하며, 이 경우 객체 모델은 유효하지만 읽기 전용입니다.4-COMPLETED: 파일이 완전히 로드되었으며 로드에 성공했습니다.
 
추가 2: 몇 가지 중요 속성 방법
 、Arguments
                      。
[function.]arguments[n]
  function :  。        Function      。
n :  。     Function     0        。
  :Arguments        ,        ,            。
Arguments              ,                        ,   arguments[n]            ,         length。    arguments                ,                 ,         arguments   。
         arguments    (Array )   :
Array.prototype.selfvalue = 1;
alert(new Array().selfvalue);
function testAguments(){
        alert(arguments.selfvalue);
}
           alert  1,         selfvalue  ,  1,       testAguments ,        “undefined”,     arguments   , arguments        。

 、caller
          ,          。
   functionName.caller
   functionName            。
  :      ,caller               。           ,   caller       null 。             caller   ,      functionName.toString   ,    ,            。
         caller      :
function callerDemo() {
  if (callerDemo.caller) {
      var a= callerDemo.caller.toString();
      alert(a);
 } else{
    alert("this is a top function");
 }
}
function handleCaller() {
    callerDemo();
}
 、callee
        Function   ,        Function      。
[function.]arguments.callee
    function            Function      。
  :callee               Function   。
callee     arguments        ,             ,                    ,           1 n      。                  。        callee  length  ,                 。arguments.length    ,arguments.callee.length     ,                      。

//callee       
function calleeDemo() {
  alert(arguments.callee);
}
//    
var sum = function(n){
  if (n <= 0) return 1;
  else return n +arguments.callee(n - 1)
}
         :
var sum = function(n){
  if (1==n) return 1;
  else return n + sum (n-1);
}
   :alert(sum(100));
          sum     ,          ,       sum            ,             ,    callee         。

 、apply and call
                       ,              :
     apply(thisArg,argArray);
     call(thisArg[,arg1,arg2…] ]);
        this        thisArg,                       
apply   :   argArray             arguments   ,        TypeError。
       argArray   thisArg      ,   Global        thisArg,           。
call   :call                          thisArg      。
      thisArg  ,  Global     thisArg
    :  call apply        ,   call apply       ( )  ,   
  ( )         ( )       ,       “  ”。     :

//      
function base() {
  this.member = " dnnsun_Member";
  this.method = function() {
     window.alert(this.member);
  }
}
function extend() {
  base.call(this);
  window.alert(member);
  window.alert(this.method);
}
         ,  call  ,extend     base      。
     , javascript  prototype    apply           ,
       :
var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}
  :    ,          :Create,       ,  。            ,    initialize,                   。      ,     prototype       


 
 
 
 
 

좋은 웹페이지 즐겨찾기