, 이 상황에서 '적용'기능을 사용하는 이유는 무엇입니까? 크롬의 콘솔에서
> $$
bound: function()
{
return document.querySelectorAll.apply(document, arguments)
}
왜 이런 코드? 의 차이점
return document.querySelectorAll(arguments)
?
, 이 상황에서 '적용'기능을 사용하는 이유는 무엇입니까? 크롬의 콘솔에서
> $$
bound: function()
{
return document.querySelectorAll.apply(document, arguments)
}
왜 이런 코드? 의 차이점
return document.querySelectorAll(arguments)
?
arguments
은 배열과 유사한 객체입니다.
document.querySelectorAll(arguments)
을 호출하면 전체 배열이 단일 매개 변수로 전달됩니다.
querySelectorAll.apply(document, arguments)
을 호출하면 배열의 각 항목이 별도의 매개 변수로 전달됩니다.
querySelectorAll
은 하나의 인수 만 취할 수 있기 때문에이 특별한 경우에는별로 유용하지 않습니다. 사용 .apply()
는 bound()
에 공급되는 인수가 이 querySelectorAll()
에 공급되기 전에를 풀어되도록합니다. 이없이
, 호출의 효과 :
document.querySelectorAll(['foo']);
전화를
bound('foo');
가 될 것이다