JavaScript 객체는 속성 또는 명명 된 값의 모음 인 복합 값입니다. 기호를 통해 속성 값을 참조하십시오. 속성 값이 함수 인 경우 메소드라고합니다. 문자열에는 속성과 방법이 있음을 알 수 있습니다.
코드 사본은 다음과 같습니다.
var s = "안녕하세요, 세계!";
var word = s.substring (s.indexof ( "")+1, s.length);
문자열은 객체가 아니기 때문에 왜 속성이 있습니까? 문자열 s의 속성이 참조되는 한, JavaScript는 새 문자열의 생성자를 호출하여 문자열 값을 객체로 변환합니다. 이 개체는 문자열 메소드를 상속하고 속성에 대한 참조를 처리하는 데 사용됩니다. 속성 참조가 완료되면 새로 생성 된 객체가 파괴됩니다 (실제로이 개체는 구현시 생성되지 않지만 전체 프로세스는 다음과 같습니다).
문자열과 마찬가지로 숫자 및 부울 값에는 자체 방법이 있습니다. 숫자 () 및 boolean () 생성자를 통해 임시 객체를 만듭니다.이 메소드에 대한 호출은이 임시 객체에서 나옵니다. 이 임시 객체를 래퍼 객체라고합니다.
알아채다:
코드 사본은 다음과 같습니다.
var s = "테스트"; // 문자열을 선언합니다
s.len = 4; // LEN 속성을 설정합니다
var t = s.len; //이 속성을 쿼리하십시오
이 시점에서 t를 출력 할 때 정의되지 않아야합니다. 두 번째 코드 줄은 임시 문자열 객체를 생성하고 LEN 속성 값을 4에 할당 한 다음 객체를 파괴합니다. 세 번째 코드 줄은 원래 문자열 값 S를 통해 새로운 속성을 설정하고 LEN 속성을 읽으려고합니다. 이 속성은 자연스럽게 존재하지 않으므로 t가 출력 될 때의 값은 정의되지 않습니다.
이 코드는 숫자, 문자열 및 부울 값의 속성 값 (또는 메소드)을 읽을 때 객체처럼 작동하지만 속성에 값을 할당하려고하면이 작업이 무시됩니다. 수정은 임시 객체에서만 발생 하며이 임시 객체는 계속 유지되지 않습니다.
문자열, 숫자 또는 부울의 속성에 액세스 할 때 생성 된 임시 객체를 래퍼 객체라고합니다. 때때로 문자열 값과 문자열 객체, 숫자 객체, 부울 값 및 부울 객체를 구별하는 데 사용됩니다.