>웹 프론트엔드 >JS 튜토리얼 >웹 개발에서 참조 값을 감지하는 방법

웹 개발에서 참조 값을 감지하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-06-04 10:18:151551검색

이번에는 웹 개발에서 참조 값을 감지하는 방법과 웹 개발에서 참조 값을 감지할 때 주의 사항이 무엇인지 보여드리겠습니다. 다음은 실제 사례입니다.

참조 값을 객체라고도 합니다. JS에서는 기본 값을 제외한 모든 값은 참조입니다. 내장된 참조 유형에는 객체, 배열, 날짜 및 오류 등 몇 가지가 있으며 그 수가 많지 않습니다. 모든 객체가 "객체"를 반환하기 때문에 typeof 연산자는 이러한 참조 유형을 결정할 수 없습니다.

권장되지 않는 또 다른 typeof 사용법은 null 유형을 감지할 때입니다. typeof 연산자가 null에 사용되면 "object"가 반환됩니다. 이는 이상하게 보이며 표준 사양에서는 심각한 버그로 간주됩니다. 따라서 프로그래밍할 때 null 유형을 감지하기 위해 typeof를 사용하는 것을 피해야 합니다.

참조 값의 유형을 감지하는 가장 좋은 방법은 instanceof 연산자를 사용하는 것입니다. 인스턴스 오브의 기본 구문은 값 인스턴스 오브 생성자입니다.

instanceof의 흥미로운 기능은 이 객체를 구성하는 생성자를 감지할 뿐만 아니라 프로토타입 체인도 감지한다는 것입니다. 프로토타입 체인에는 객체를 정의하는 데 사용되는 상속 패턴을 포함하여 많은 정보가 포함되어 있습니다. 예를 들어, 기본적으로 모든 객체는 Object에서 상속되므로 모든 객체에 대한 객체 인스턴스 값은 true를 반환합니다. 이러한 이유로 객체가 특정 유형인지 확인하기 위해 객체 인스턴스 값을 사용하는 것은 최적이 아닙니다.

instanceof 연산자는 다음과 같은 사용자 정의 유형도 감지할 수 있습니다.

function Person (name) {  this.name = name;
}var me = new Person('Nicholas');console.log(me instanceof Object); // trueconsole.log(me instanceof Person); // true

JS에서 사용자 정의 유형을 감지할 때 가장 좋은 방법은 유일한 방법이기도 한 instanceof 연산자를 사용하는 것입니다. 내장 JS 유형(instanceof 연산자 사용)도 마찬가지입니다. 그러나 심각한 한계가 있습니다.

브라우저 프레임(frameA)의 객체가 다른 프레임(frameB)으로 전달된다고 가정합니다. 생성자 Person은 두 프레임 모두에 정의되어 있습니다. 프레임 A의 객체가 프레임 A의 Person 인스턴스인 경우 다음 규칙이 적용됩니다.

frameAPersonInstance instanceof frameAPerson; // trueframeAPersonInstance instanceof frameBPerson; // false

각 프레임에는 Person의 복사본이 있으므로 두 정의가 정확히 동일하더라도 해당 프레임에 있는 Person의 복사본 인스턴스로 간주됩니다. 이 문제는 사용자 정의 유형뿐만 아니라 다른 두 가지 매우 중요한 내장 유형인 함수와 배열에서도 발생합니다. 이 두 가지 유형의 경우 일반적으로 instanceof를 사용할 필요가 없습니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

웹 개발에서 원래 값을 감지하는 방법

JS를 사용하여 참조 및 값으로 전달하는 방법

위 내용은 웹 개발에서 참조 값을 감지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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