1. 전화상담 및 신청방법
1. Call과 Apply는 모두 Function.prototype의 메소드로, JavaScript 엔진에 의해 내부적으로 구현됩니다. 따라서 각 Function 객체 인스턴스(즉, 각 메소드)는 호출을 갖습니다. , 속성을 적용합니다. 메소드의 속성이기 때문에 그 사용은 물론 메소드마다 다릅니다. 이 두 메소드는 동일한 기능을 갖고 있지만 서로 다른 방식으로 사용되기 때문에 혼동되기 쉽습니다.
2, 구문: foo.call(this, arg1,arg2,arg3) == foo.apply(this, 인수) == this.foo(arg1, arg2, arg3);
3. 유사점: 두 방법의 효과는 완전히 동일합니다.
4. 차이: 메소드에 전달되는 매개변수가 다릅니다.
2. 예시 코드
1. 예제 코드는 두 개의 함수 A와 B를 정의합니다. A에는 플래그 속성과 팁 속성(이 속성에 함수가 할당됨)이 포함되고 B에는 플래그 속성이 포함됩니다.
2. A와 B의 객체 a와 b를 각각 만듭니다.
3. a.tip.call(b) 또는 a.tip.apply(b)를 실행한 결과는 B입니다.
4. 호출과 적용 모두 B 개체가 A 개체의 팁 메서드를 호출하고 이에 대한 현재 작업 개체를 수정할 수 있다는 결과를 볼 수 있습니다.