Javascript 프리미티브 대 객체: 개념 명확화
"Javascript의 거의 모든 것이 객체"라는 일반적인 인식에도 불구하고, 전부는 아닙니다. 언어의 엔터티는 이 정의를 따릅니다. 프리미티브와 객체의 이러한 구별은 명확한 설명이 필요합니다.
프리미티브
객체와 달리 프리미티브는 기본 형태로 존재하는 불변의 값입니다. 메서드와 속성이 부족하고 다음과 같은 데이터 유형을 포함합니다.
객체 래퍼
프리미티브에는 해당 개체 래퍼가 있습니다. (문자열, 숫자, 부울) 메서드와 속성을 제공합니다. 그러나 프리미티브 자체는 객체가 아닙니다. 기본 요소의 속성과 상호 작용하기 위해 Javascript는 작업에 대한 래퍼 객체를 암시적으로 생성합니다.
문자열의 예
아래 코드 조각을 고려하세요.
var s = "foo"; var sub = s.substring(1, 2); // sub is now the string "o"
Javascript는 내부적으로 다음을 수행합니다. 단계:
프리미티브에 속성 할당 시도
프리미티브에 속성을 할당하는 것은 이러한 속성이 임시 래퍼 개체와 연결되고 원시 자체가 아님:
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
다음과 같은 기능 객체
반면에 함수는 Object 클래스에서 상속할 수 있는 진정한 객체입니다. 속성을 가지며 다른 객체처럼 조작할 수 있습니다.
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
결론적으로 기본 객체는 객체와 유사한 동작을 하는 것처럼 보이지만 Javascript의 실제 객체와는 다릅니다. 객체 래퍼는 기본 값과의 상호 작용을 허용하지만 기본 값은 변경할 수 없습니다. 그러나 함수는 모든 개체 기능을 수행할 수 있는 완전한 기능을 갖춘 개체입니다. 이러한 이해를 통해 Javascript 언어에서 기본 요소와 객체 간의 관계가 명확해집니다.
위 내용은 Javascript 프리미티브는 실제로 객체입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!