이 두 가지를 사용하는 것을 항상 잊어 버리고 기록을 만들기 위해 적어 두십시오.
그들의 기능은 정확히 동일하지만 전달 된 매개 변수는 다릅니다.
적용하다
적용 두 가지 매개 변수를 허용합니다. 첫 번째는 기능 본문 에서이 객체의 포인팅을 공식화하고 두 번째는 첨자가있는 세트입니다 (객체는 가로 질 수 있음). 적용 메소드는이 세트의 요소를 호출 된 함수로 매개 변수로 전달합니다.
var func = function (a, c, c) {alert ([a, b, c]); // 1,2,3]} func.Apply(null, [1,2,3]);부르다
통화에 전달 된 매개 변수는 고정되지 않았습니다. 적용과 동일한 것은 첫 번째 매개 변수가 기능 본문 에서이 포인팅을 나타내는 것입니다. 두 번째 매개 변수가 시작되면 각 파라미터가 순서대로 함수로 전달됩니다.
var func = function (a, b, c) {alert ([a, b, c]); // 1,2,3] }func.call(null, 1,2,3);전화는 구문의 설탕입니다. 첫 번째 매개 변수가 NULL 인 경우 기능 본체 의이 부분은 브라우저의 창인 호스트 객체를 가리 킵니다.
전화 및 적용의 사용
1.이 점을 변경하십시오
위의 예는 다음과 같습니다
2. function.prototype.bind
function.prototype.bind를 시뮬레이션하십시오
function.prototype.bind = function (context) {var self = this; return function () {return self.Apply (컨텍스트, 인수); }}; var obj = {이름 : 'cxs'}; var func = function () {alert (this.name); // cxs} .bind (obj); fun ();