>  기사  >  웹 프론트엔드  >  JavaScript 패키징 개체 인스턴스 분석_javascript 기술

JavaScript 패키징 개체 인스턴스 분석_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:07:151082검색

이 기사의 예에서는 JavaScript 패키징 개체의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

js 객체는 복합 값입니다. 즉, 속성 또는 명명된 값의 컬렉션입니다.

다음 코드를 참고하세요:

var s = "hello world";
var len = s.length;

이 예에서 s는 문자열이고 string은 객체가 아닌데 속성이 있는 이유는 무엇인가요? 실제로 문자열 s의 속성이 참조되는 한, js는 새 String(s)을 호출하여 문자열을 객체로 변환합니다. 객체는 문자열의 메서드를 상속하고 속성 참조를 처리하는 데 사용됩니다. 속성이 참조되면 결국 새로 생성된 개체는 소멸됩니다(이 임시 개체는 구현 시 반드시 생성되거나 소멸되는 것은 아니지만 전체 프로세스는 다음과 같습니다).

문자열과 마찬가지로 숫자 및 부울 값에도 고유한 메서드가 있습니다. 임시 개체는 Number() 단일 코어 Boolean() 생성자를 통해 생성되며 이러한 메서드에 대한 호출은 모두 이 임시 개체에서 발생합니다. , null 및 undefed는 래퍼 객체가 아닙니다. 해당 속성에 액세스하면 유형 오류가 발생합니다.
예를 들어 다음 코드는 다음과 같습니다.

var s0 = "hello world";
s0.len = 100;
var t = s.len; //t的值将为undefined

라인 2는 임시 객체를 생성하고 즉시 삭제하기 때문에 라인 3은 원래 문자열 값을 통해 새 문자열 객체를 생성하고 당연히 존재하지 않는 len 속성을 읽으려고 시도합니다. 이 코드는 문자열, 숫자, 부울 값의 속성 값이나 메서드를 읽을 때 객체처럼 동작하는 방법을 보여줍니다. 그러나 해당 속성에 값을 할당하려고 하면 이 작업이 무시됩니다. 수정은 임시 개체에서만 발생하고 임시 개체는 유지되지 않습니다.
문자열, 숫자 또는 부울 값의 속성에 액세스할 때 일시적으로 생성되는 임시 개체를 래퍼 개체라고 합니다.
명시적으로 문자열 객체를 생성하고 해당 속성을 추가하면 자연스럽게 속성이 유지됩니다.

var str = "hello world";
var objs = new String(str);
objs.len = 100;
var t = objs.len; //t将被赋值为100

js는 필요한 경우 래핑된 개체를 기본 값으로 변환하므로 생성된 표시된 개체와 해당 기본 값은 항상은 아니지만 종종 동일하게 동작합니다. == 연산자는 원래 값과 래핑된 객체를 동일하게 취급하지만 === 일치 연산자는 이를 동일하지 않은 것으로 간주합니다. 또한 typeof 연산자를 사용하여 원래 값과 래핑된 객체 간의 차이를 확인할 수 있습니다.

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

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