JavaScript에서 인수 객체를 사용하는 방법은 무엇입니까? (사용방법 소개)

不言
풀어 주다: 2019-01-19 10:44:02
앞으로
3127명이 탐색했습니다.

이 글의 내용은 JavaScript에서 인수 객체를 사용하는 방법에 관한 것입니다. (사용법 소개) 도움이 필요한 친구들이 참고할 수 있는 내용이길 바랍니다.

arguments는 함수에 전달된 인수에 해당하는 배열과 유사한 객체입니다.

Syntax

arguments
로그인 후 복사

Description

arguments 개체는 모든 함수에서 사용할 수 있는 지역 변수입니다. 인수 개체를 사용하여 함수 내에서 함수의 인수를 참조할 수 있습니다. 이 객체에는 함수에 전달된 각 매개변수에 대한 항목이 포함되어 있으며 첫 번째 항목의 인덱스는 0에서 시작합니다. 예를 들어 함수에 세 개의 인수가 전달되면 다음과 같이 참조할 수 있습니다.

arguments[0]
arguments[1]
arguments[2]
로그인 후 복사

매개변수도 설정할 수 있습니다.

arguments[1] = 'new value';
로그인 후 복사

arguments 개체가 배열이 아닙니다. 배열과 유사하지만 길이를 제외한 배열 속성이 없습니다. 예를 들어, pop 메소드가 없습니다. 하지만 실제 배열로 변환할 수 있습니다.

let args = Array.prototype.slice.call(arguments); 
let args = [].slice.call(arguments);
로그인 후 복사

Array.from() 메서드나 스프레드 연산자를 사용하여 인수를 실제 배열로 변환할 수도 있습니다.

let args = Array.from(arguments);
let args = [...arguments];
로그인 후 복사

매개변수에 슬라이스를 사용하면 일부 JavaScript 엔진이 차단됩니다. (예: V8 엔진).

관심이 있다면 인수 개체를 반복하여 새 배열을 구성해 보세요.

또 다른 접근 방식은 무시/멸시/멸시/멸시 Array 생성자를 함수로 사용하는 것입니다.

let args = (
arguments.length === 1 ? [arguments[0]] : 
Array.apply(null, arguments)
);
로그인 후 복사

Array 제네릭을 사용할 수 있는 경우 다음 코드를 대안으로 사용할 수 있습니다.

var args = Array.slice(arguments);
로그인 후 복사

인수 개체는 함수 내에서만 유효합니다. , 함수 외부에서 인수 개체를 호출하면 오류가 발생합니다.

인수 유형은 '객체'를 반환합니다.

console.log(typeofargs); // 'object'

는 인덱스를 사용하여 각 인수의 유형을 결정할 수 있습니다.

console.log(typeof arguments[0]); 
//这将返回单个参数的typeof。
로그인 후 복사

명시적으로 선언한 것보다 더 많은 인수를 사용하여 함수를 호출하는 경우 인수 개체를 사용할 수 있습니다. 이 기술은 가변 개수의 매개변수가 있는 함수에 유용합니다. Argument.length를 사용하여 인수 수를 가져온 다음 Argument 객체를 사용하여 각 인수를 처리할 수 있습니다. (함수 시그니처에 대한 인수 수를 얻으려면 Function.length 속성을 사용하십시오.)

Property

arguments.callee
// 指向当前执行的函数。
arguments.caller 
// 指向调用当前函数的函数。
arguments.length
// 指向传递给当前函数的参数数量。
로그인 후 복사

Example

여러 문자열을 연결하는 함수 정의

이 예에서는 다음을 수행하는 함수를 정의합니다. 문자열을 연결합니다. 이 함수에 대해 공식적으로 선언된 유일한 인수는 문자열을 연결하기 위한 조인 포인트로 문자를 지정하는 문자열입니다. 함수는 다음과 같이 정의됩니다.

function myConcat(separator) {
  var args = Array.prototype.slice.call(arguments, 1);  
  return args.join(separator);
}
로그인 후 복사

이 함수에 인수를 얼마든지 전달할 수 있으며, 함수는 각 인수를 항목으로 포함하는 목록을 생성합니다.

myConcat(", ", "red", "orange", "blue");
// returns "red, orange, blue"
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// returns "elephant; giraffe; lion; cheetah"
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
// returns "sage. basil. oregano. pepper. parsley"
로그인 후 복사

HTML 목록을 생성하는 방법 정의

이 예에서는 문자열에서 HTML 목록을 생성하는 함수를 정의합니다. 이 함수에 대해 공식적으로 선언된 유일한 인수는 문자입니다. 인수가 "u"이면 순서가 지정되지 않은 목록(항목 목록)이 생성되고, 인수가 "o"이면 순서가 지정된 목록(번호가 매겨진 목록)이 생성됩니다. 이 함수는 다음과 같이 정의됩니다.

function list(type) {
  var result = "<" + type + "l><li>";
  var args = Array.prototype.slice.call(arguments, 1);
  result += args.join("</li><li>");
  result += "</li></" + type + "l>"; // end list
  return result;
}
로그인 후 복사

이 함수에 매개변수를 원하는 만큼 전달할 수 있으며, 함수는 각 매개변수를 첫 번째 매개변수가 지정한 유형 목록에 항목으로 추가합니다.

var listHTML = list("u", "One", "Two", "Three");
/* listHTML is:
"<ul><li>One</li><li>Two</li><li>Three</li></ul>"
*/
로그인 후 복사

ES6의

arrow 함수에는 해결책을 제공할 수 있는 자체 arguments 对象,不过在大多数情形下,rest매개변수가 없다는 점에 유의하세요.

let a;
const fn = (...rest) => Array.prototype.slice.call(rest, 1);
a = fn(1, 2); // [2]
로그인 후 복사

위 내용은 JavaScript에서 인수 객체를 사용하는 방법은 무엇입니까? (사용방법 소개)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿