JS 기본 방법 구현 JQuery 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.