JavaScript 객체의 수수께끼 해독
JavaScript 영역에서 객체의 편재성은 종종 의문을 제기합니다. 배열과 함수는 객체와 유사한 동작을 보이지만 "문자열"과 "숫자"의 불가사의한 특성을 풀면 당황스러울 수 있습니다.
원시 값의 파악하기 어려운 특성
대중적인 믿음과는 달리, JavaScript의 모든 것이 객체는 아닙니다. 문자열, 숫자, 부울과 같은 핵심 요소는 불변성을 특징으로 하는 기본 요소로 분류됩니다. 실제 객체와 달리 기본 요소에는 메서드와 속성이 없습니다.
객체성에 대한 환상
JavaScript는 기본 요소를 객체처럼 보이게 만드는 영리한 트릭을 사용합니다. 기본 요소의 속성(예: s.substring(1, 2))에 액세스하려고 시도할 때 JavaScript는 원하는 메서드를 소유한 래퍼 객체(예: String(s))를 원활하게 생성합니다. 그러나 이 래퍼는 수명이 짧아 메서드 실행이 완료되자마자 사라집니다.
증명: 도달할 수 없는 속성
이러한 환상은 기본 요소에 속성을 할당할 때 분명해집니다. , 이는 궁극적으로 쓸데없는 것으로 판명되었습니다. 다음 코드를 고려해보세요.
프리미티브 s에 속성을 할당했음에도 불구하고 해당 속성을 검색하려고 하면 정의되지 않은 결과가 발생합니다. 이는 메서드 완료 시 삭제되는 임시 래퍼 객체에 속성이 연결되어 있기 때문입니다.
함수: True Objects
프리미티브와 달리 JavaScript 함수는 다음과 같습니다. Object 프로토타입에서 상속된 합법적인 객체입니다. 이를 통해 속성을 소유하고 객체 기반 메서드를 실행할 수 있는 능력을 부여합니다.
함수의 속성 할당
함수는 일반적인 객체처럼 작동하여 속성 할당 및 검색이 가능합니다. :
JavaScript에서 기본 객체와 적법한 객체의 차이를 이해함으로써 주변의 혼란을 해소합니다. "거의 모든 것이 객체이다"라는 널리 퍼진 개념
위 내용은 JavaScript에서 문자열과 숫자는 정말 객체인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!