반응형
배열을 함수 인수 목록으로 변환
이 질문에는 이미 답변이 있습니다.
JavaScript의 배열을 함수 인수 시퀀스로 변환 할 수 있습니까? 예:
run({ "render": [ 10, 20, 200, 200 ] });
function run(calls) {
var app = .... // app is retrieved from storage
for (func in calls) {
// What should happen in the next line?
var args = ....(calls[func]);
app[func](args); // This is equivalent to app.render(10, 20, 200, 200);
}
}
예. 현재 JS 버전에서는 다음을 사용할 수 있습니다.
app[func]( ...args );
ES5 및 이전 사용자는 다음 .apply()
방법 을 사용해야합니다 .
app[func].apply( this, args );
MDN에서 다음 방법을 읽으십시오.
- .대다()
- spread "..."연산자 (관련 나머지 "..."매개 변수 연산자 와 혼동하지 말 것 : 둘 다를 읽는 것이 좋습니다!)
비슷한 주제에 대한 다른 게시물의 매우 읽기 쉬운 예 :
var args = [ 'p0', 'p1', 'p2' ];
function call_me (param0, param1, param2 ) {
// ...
}
// Calling the function using the array with apply()
call_me.apply(this, args);
그리고 여기 내가 개인적으로 가독성을 좋아했던 원래 게시물에 대한 링크
app[func].apply(this, args);
Stack Overflow에 게시 된 유사한 질문을 살펴볼 수 있습니다 . 그것은 사용 .apply()
이 작업을 수행하는 방법.
@bryc-예, 다음과 같이 할 수 있습니다 :
Element.prototype.setAttribute.apply(document.body,["foo","bar"])
그러나 그것은 다음과 비교할 때 많은 작업과 난독 화처럼 보입니다.
document.body.setAttribute("foo","bar")
참고 URL : https://stackoverflow.com/questions/1316371/converting-an-array-to-a-function-arguments-list
반응형
'IT story' 카테고리의 다른 글
let 또는 const로 선언 된 변수가 ES6에서 호이스트되지 않습니까? (0) | 2020.04.14 |
---|---|
재귀 적으로 Chmod (0) | 2020.04.14 |
R에서 소수 자릿수 서식 (0) | 2020.04.14 |
파이썬을 사용하여 빈 파일 만들기 (0) | 2020.04.14 |
정렬되지 않은 목록 항목에서 들여 쓰기를 제거하는 방법? (0) | 2020.04.14 |