JavaScript의 apply() 메서드와 call() 메서드는 Function 개체의 메서드입니다. 각 Function 개체에는 apply() 메서드와 call() 메서드가 있습니다. () 메소드 JavaScript에서의 사용법과 기능은 무엇입니까? 이번 글에서는 apply() 메소드와 call() 메소드의 사용법에 대해 설명하겠습니다.
apply() 메소드와 call() 메소드의 구문:
/*apply()方法*/ function.apply(thisObj[, argArray]) /*call()方法*/ function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);
Function : 다른 것을 빌리세요 복사하지 않고 하나의 객체 메소드. (함수의 객체 컨텍스트를 초기 컨텍스트에서 thisObj가 지정한 새 객체로 변경하여 다른 객체 대신 메소드를 호출하는 데 사용할 수 있습니다.)
apply() 메소드 및 호출 ( ) 메서드 기본 사용법:
function add(a,b){ return a+b; } function sub(a,b){ return a-b; } var a1 = add.apply(sub,[4,2]); //sub调用add的方法 var a2 = sub.apply(add,[4,2]); alert(a1); //6 alert(a2); //2 /*call的用法*/ var a1 = add.call(sub,4,2);
apply() 메서드 및 call() 메서드 구현 상속:
function Animal(name){ this.name = name; this.showName = function(){ alert(this.name); } } function Cat(name){ Animal.apply(this,[name]); } var cat = new Cat("咕咕"); cat.showName(); /*call的用法*/ Animal.call(this,name);
#🎜 🎜#apply() 메소드와 call() 메소드는 다중 상속을 구현합니다:
function Class10(){ this.showSub = function(a,b){ alert(a - b); } } function Class11(){ this.showAdd = function(a,b){ alert(a + b); } } function Class12(){ Class10.apply(this); Class11.apply(this); // Class10.call(this); //Class11.call(this); } var c2 = new Class12(); c2.showSub(3,1); //2 c2.showAdd(3,1); //4
Call() 메소드의 기능: 의사 배열을 실제 배열로 변경# 🎜🎜# Pseudo 배열은 길이 속성을 포함하는 json 객체입니다. 실제로는 컬렉션(컬렉션 데이터 설명)을 시뮬레이션합니다.
For 예:
var json = {1:’苹果’,2:’香蕉’,3:’菠萝’,length:3} Var arr = [‘苹果’,’香蕉’,’菠萝’]
1 키는 모두 1, 2, 3, 4, 5
2입니다. 길이 속성
의사 배열을 실제 배열로 변환하는 방법
/*我们通过如下方式将其转换成数组*/ /*slice:截取数组,返回的还是数组,这里截取全部*/ var domNodes=Array.prototype.slice.call(divs); /*这样domNodes就可以应用Array下所有方法*/
#🎜 🎜## 🎜🎜#1. Math.max는 배열에서 가장 큰 항목을 얻을 수 있습니다.
Math.max는 Math.max([param1, param2])는 배열이지만 Math.max(param1,param2...)를 지원하므로 Apply의 특성에 따라 var max=Math.max.apply(null,array)를 풀 수 있으므로 배열에서 최대 항목을 쉽게 얻을 수 있습니다(apply는 배열을 매개변수별 메서드로 변환하고 이를 메서드에 전달합니다). 이 메서드를 호출할 때 첫 번째 매개 변수는 null로 지정됩니다. 이는 이 메서드를 호출할 개체가 없기 때문입니다. 반환된 결과를 계산하고 가져오는 데 이 메서드만 사용하면 됩니다. 과거에 null을 직접 전달했습니다.
이 방법을 사용하여 배열에서 가장 작은 항목을 가져올 수도 있습니다. Math.min.apply(null,array)
2, Array.prototype . push는 두 개의 배열을 병합할 수 있습니다동일한 push 메소드는 push 배열을 제공하지 않지만 push(param1, param2...paramN)를 제공하므로 Apply를 사용하여 변환할 수도 있습니다. 이 배열, 즉:
var arr1=new Array("1","2","3"); var arr2=new Array("4","5","6"); Array.prototype.push.apply(arr1,arr2); //得到合并后数组的长度,因为push就是返回一个数组的长度
추천 관련 글 :
# 🎜🎜#javascript_javascript 스킬의 호출 및 적용 메소드에 대한 간략한 설명
위 내용은 Javascript에서 call() 메소드와 apply() 메소드의 용도는 무엇입니까? (코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!