0
함수의 인수 객체가 어떻게 파싱되는지 이해하는 데 문제가 있습니다.자바 스크립트 인수 객체 매개 변수 구문 분석
코드 내가 분석 해요 : 인수해야
function foo(something) {
console.log(something); // outputs 3
return this.a + something;
}
function bind(fn, obj) {
return function() {
return fn.apply(obj, arguments);
};
}
var obj = {
a: 2
};
var bar = bind(foo, obj);
var b = bar(3, 5, 6);
함수 foo는 콘솔이 "뭔가"라는 이름의 인수를 기록는, 객체. 왜 처음 매개 변수가 전달되고 다른 매개 변수는 무시됩니까? 나는 전체 인수 객체를 가져야한다고 생각했습니다.
배열을 전달하는 중입니다. (그런데 인수 매개 변수 유형은 object입니다.) [3, 5, 6] 그리고 첫 번째 요소를 가져 오는 중입니다. 왜 그렇게? 나를 위해 그것은 인자가 잘못 출력되는 함수를 가지고있는 것처럼 보입니다. 예 : 'function test (arg) { console.log (arg); } test ([1,2,3]) // [1,2,3]' 을 출력하지만 다음과 같이 표시됩니다. 'test ([1,2,3]) // [1]' – tawreon
.apply()는 주어진 배열을 함수 인수에 매핑합니다. 주어진 배열의 모든 요소를 루프하여 모든 매치를 매핑합니다. foo가 오직 하나의 매개 변수를 가지고 있기 때문에 당신은 인자 [0]에 대한 일치를 가지고 있습니다. – scipper