apply call

2648 단어

apply: 방법은 다른 대상을 납치할 수 있는 방법으로 다른 대상의 속성을 계승합니다.


          Function.apply(obj,args) 방법은 두 개의 매개 변수를 수신할 수 있습니다. obj: 이 대상은 Function 클래스에서this 대상args를 대체합니다. 이것은 그룹입니다. 이것은 매개 변수로 Function(args-->arguments)에 전달됩니다.
 
apply는 사실 두 번째 관수 그룹의 매개 변수를 매개 변수 목록으로 변환한 다음에 Function에 전달합니다

call: apply의 뜻과 같이 매개 변수 목록이 다를 뿐입니다.


           Function.call(obj, [param1[, param2[,...[, paramN]]]])obj: 이 대상은 Function 클래스에서this 대상 params를 대체합니다. 이것은 매개 변수 목록입니다.

예:


function Person(name,age){
    this.name=name; 
    this.age=age; 
} 

function Student(name,age,grade){
    Person.apply(this,arguments);   //call : Person.call(name,age,grade)
    this.grade=grade; 
} 

var student=new Student("qian",21," "); 

student.name; //qian
student.age; //21
student.grade;  // 

 

apply 유용

// 
var min=Math.min.apply(null,array);

// 
var max=Math.max.apply(null,array);

// , arr1
var arr1 = [1,2,3]
var arr2 = [4,5,6]
[].push.apply(arr1,arr2)   // Array.pprototype.push(arr1,arr2)
console.log(arr1)   //[1,2,3,4,5,6]

보통 어떤 상황에서 apply를 사용하여 Math와 유사하게 사용할 수 있습니다.min 등의 특수 용도:
일반적으로 목표 함수에는 n개의 매개 변수 목록만 필요하고 하나의 수조의 형식([param1[,param2[,...[,paramN]]]])을 받지 않으면 apply 방식으로 이 문제를 교묘하게 해결할 수 있다.

 


Apply의 두 번째 매개 변수: 그룹 또는 클래스 그룹


코드를 보려면 다음과 같이 하십시오.
var arr = Array.apply(null,{length:5}); 
// arr == [undefined,undefined,undefined,undefined,undefined]

위의 코드 설명:
{length: 5}는 클래스 그룹의 대상입니다. [undefined, undefined, undefined, undefined와 유사합니다.]
그래서 Array.apply(null, {length:5})는 다음과 같습니다.
Array.apply(null, [undefined, undefined, undefined, undefined, undefined])
또는array(undefined,undefined,undefined,undefined,undefined)
또는 new Array(undefined,undefined,undefined,undefined,undefined)

좋은 웹페이지 즐겨찾기