JavaScript에서 범위 내 모든 변수에 어떻게 액세스할 수 있나요?
현재 모든 변수를 검색할 수 있는 직접적인 방법은 없다는 것이 일반적으로 인정되지만 JavaScript의 범위 내 변수에는 함수 내의 지역 변수에 액세스하기 위한 제한된 접근 방식이 있습니다.
f ''를 사용하여 함수를 문자열로 변환하면 함수의 소스 코드가 생성됩니다. Esprima와 같은 파서의 도움으로 함수의 코드를 구문 분석하고 지역 변수 선언을 식별합니다.
구체적으로 결과에서 유형 필드가 "VariableDeclaration"으로 설정된 개체를 찾습니다. 예를 들어 f:
var f = function() { var x = 0; };
함수에서 Esprima를 사용하여 함수 코드를 구문 분석하면 다음이 반환됩니다.
{ "type": "Program", "body": [ { "type": "VariableDeclaration", "declarations": [ { "type": "VariableDeclarator", "id": { "type": "Identifier", "name": "x" }, "init": { "type": "Literal", "value": 0, "raw": "0" } } ], "kind": "var" } ] }
이 메서드는 함수 자체 내에 정의된 변수에 대한 액세스만 제공합니다. 예를 들어 다음 함수에서는
var g = function() { var y = 0; var f = function() { var x = 0; }; };
동일한 접근 방식을 적용하면 y가 아닌 x 변수에만 액세스할 수 있습니다. 중첩된 변수에 접근하려면 호출자를 사용하는 루프를 사용할 수 있지만 변수 이름을 미리 알고 있어야 합니다.
위 내용은 JavaScript 함수에서 모든 로컬 범위 변수를 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!