javascript 핵심 -- function

2564 단어 JavaScript
1. 호출
1.1 함수 호출

function f(){
     // TODO xxxx   
}

f();//     

1.2 방법 호출

var obj = {
    m:function(){
       // TODO xxxx   
    }
}


obj.m();

구별:
함수 가 ECMAScript 3 와 엄격 하지 않 은 ECMAScript 5 에서 호출 된 컨 텍스트 는 (this) 전역 대상 이지 만 엄격 한 모드 에서 호출 된 컨 텍스트 는 undefined 입 니 다.
방법 호출 컨 텍스트 this 지향 자체
eg

var obj = {
    m:function(){
        var self = this;
        console.log(this === obj); // true
    
        f();
        
        function f(){
            console.log(this === obj);  //false;
            console.log(this);       // this  undefined           
            console.log(self === obj); // true
            
        }
        
        return this;
    }
}

obj.m();

2. 전달 매개 변수
2.1 적 게 전달   --> undefined 로 변 하 다

function f(a,b,c){

    console.log(a); // a = 1
    console.log(b); // b = 2
    console.log(c); // c = undefined

}

f(1,2);

2.2 멀 티 패스  --> arguments 를 통 해 가 져 오기

function f(a){
    console.log(a);  // 1
    console.log(arguments.length); //2
    console.log(arguments[0]);  //1 == a
    console.log(arguments[1]);  //2 ==      
    console.log(arguments[2]);  //undefined
}

f(1,2);

 

주: arguments 는 배열 이 아니 라 숫자 로 색인 을 만 들 고 length 속성 을 만 들 었 습 니 다.
2.3. arguments 의 두 속성 callee 와 caller
엄격 하지 않 은 모드 에서 callee 는 다음 을 가리킨다.
현재 실행 중인 함수
caller 지시:
현재 실행 중인 함수 호출

var f = function(x){
    if(x <=1){
        return 1;
    }
    return x*arguments.callee(x-1);
}
f(5);  //        120

3. 값 함수 만 들 기

function square(x){
    return x*x;
}
var s = square;
square(4);//16
s(5); //25

/** 
* a[0]:    function
* a[1]: 20
*/
var a = [function square(x){return x*x;},20];
a[0](a[1]); //400

//   ,function      
function add(x,y){
    return x+y;
}
function operate(operator,operand1,operand2){
    return operator(operand1,operand2);
}

operate(add,1,2);

좋은 웹페이지 즐겨찾기