source

배열을 함수 인수 목록으로 변환

factcode 2022. 10. 23. 09:58
반응형

배열을 함수 인수 목록으로 변환

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에서 다음 방법을 읽어보십시오.

비슷한 토픽에 관한 다른 투고로부터의 매우 읽기 쉬운 예:

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()이 작업을 수행하는 방법.

@syslogc - 네, 다음과 같이 할 수 있습니다.

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

반응형