call, apply,bind 원리, 구별 및 원생 js 시뮬레이션.
1.call 방법.모든 함수는call 방법을 호출하여 현재 이 함수가 실행하는this 키워드를 바꾸고 매개 변수를 지원합니다.우리는 원생 js 시뮬레이션 콜 방법으로 그것을 더욱 깊이 있게 이해한다.a. 첫 번째 매개 변수는call방법을 호출하는 함수 중의this가 b를 가리킨다. 두 번째 및 이후의 매개 변수는call방법을 호출하는 함수에 전송되는 매개 변수 c. 이 함수를 실행하면call방법이 되돌아오는 결과는 그의 함수를 호출하여 되돌아오는 결과 d.this를 삭제한다.
Function.prototype.mycall = function(context){
context = context || window;
context.fn = this;
var arr = [];
for(var i = 1;i
2. apply와call 방법은 유사합니다. 작용은 현재 함수 실행의this 방향을 바꾸고 함수를 실행하는 것입니다.유일한 차이점은 콜 방법이 현재 함수에 대한 매개체이다.apply는 수조 방식으로 매개 변수를 전송합니다
Function.prototype.myApply =function(context,arr){
context = Object(context) || window;
context.fn = this;
var result;
if(!arr){
result= context.fn();
}else{
var args = [];
for(var i=0;i
3. bind 방법은 현재 bind 방법을 호출하는 함수this의 방향을 바꾸는 것이지만 현재 함수를 즉시 실행하지 않고 새로운 함수를 되돌려줍니다.또한 새로운 함수에 매개 변수를 전송하여 실행하기 전에 bind 방법을 호출하는 함수 실행을 지원하고 매개 변수를 투과합니다.bind 방법은 고급 함수의 일종이다.
Function.prototype.myBind = function(){
var context = arguments[0];
var self = this;
return function (){
self.myApply(context,arguments)
}
};
var j = {name:1};
var k = [123]
function drink (k){
console.log(this.name,k);
}
var fn = drink.myBind(j);
fn(k);
원생call,apply,bind방법을 실현하는 중점: 1.this 지향 변경: 함수 실행, 점.앞에는 누구,this는 누구의 원리가this지향을 바꾼다.매개 변수 투과: eval을 통해 문자열을 js 문법으로 바꾸어 실행합니다.3. bind 방법은 함수를 되돌려주고 되돌려주는 함수가 실행되며 역할역에서context 대상을 찾습니다.그리고 원형 체인을 통해 응용 프로그램 호출 방법 찾기
call, apply,bind는 같고 차이는 같습니다: 함수 실행을 바꿀 수 있는this는 다른 방향을 가리킵니다:callapply는 즉시 실행합니다bind는 실행하지 않습니다
call 전참은 하나하나 전입되고, apply는 수조 형식으로 전입됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.