>웹 프론트엔드 >JS 튜토리얼 >JavaScript 함수 호출에서 명명된 매개변수를 어떻게 시뮬레이션할 수 있습니까?

JavaScript 함수 호출에서 명명된 매개변수를 어떻게 시뮬레이션할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-06 00:51:09159검색

How Can I Simulate Named Parameters in JavaScript Function Calls?

JavaScript 함수 호출에서 명명된 매개변수 시뮬레이션

C#과 같은 프로그래밍 언어에서 명명된 매개변수를 사용하면 매개변수 이름을 지정하여 명확하고 간결한 함수 호출이 가능합니다. 그들의 가치와 함께. 그러나 JavaScript는 본질적으로 이 기능을 제공하지 않습니다. 그러나 비슷한 효과를 얻을 수 있는 방법이 있습니다.

ES2015 이상: 매개변수 구조화

ES2015가 도입되면서 매개변수 구조분해는 다음을 수행하는 내장 메커니즘을 제공합니다. 명명된 매개변수를 시뮬레이션합니다. 이 기능을 사용하면 함수는 객체를 인수로 받아들이고 특정 속성을 명명된 매개변수로 추출할 수 있습니다.

function myFunction({ param1, param2 } = {}) {
  // ...function body...
}

그런 다음 호출자는 원하는 매개변수 값을 사용하여 객체를 전달할 수 있습니다.

myFunction({ param1: 70, param2: 175 });

ES5: Function.prototype.toString 및 객체 연관

ES5에서는 hackish 메서드 Function.prototype.toString()을 사용하여 함수 서명을 구문 분석하고 매개변수 이름을 식별하는 작업이 포함됩니다. 이를 통해 객체의 속성을 해당 매개변수와 연결할 수 있습니다.

var func = parameterfy(function(a, b, c) {
  console.log('a is ' + a, ' | b is ' + b, ' | c is ' + c);     
});

func(1, 2, 3); // a is 1  | b is 2  | c is 3
func(1, {b:2, c:3}); // a is 1  | b is 2  | c is 3

그러나 이 접근 방식에는 단점이 있습니다.

  • 마지막 인수가 객체인 경우 처리됩니다. "명명된 인수 객체"로.
  • 함수는 항상 정의되지 않은 값과 함께 정의된 모든 인수를 다음과 같이 받습니다. 자리 표시자.

추가 고려 사항

함수 래퍼를 만드는 대신 함수와 추가 인수를 허용하거나 함수를 확장하는 함수를 가질 수도 있습니다. 명명된 매개변수를 사용하여 함수 실행을 지원하는 프로토타입.

위 내용은 JavaScript 함수 호출에서 명명된 매개변수를 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.