> 웹 프론트엔드 > JS 튜토리얼 > js 래퍼 클래스에 대한 심층적인 이해

js 래퍼 클래스에 대한 심층적인 이해

零到壹度
풀어 주다: 2018-04-12 11:21:29
원래의
2725명이 탐색했습니다.

이 글의 내용은 js 패키징 클래스에 대한 심층적인 이해를 공유하기 위한 것입니다. 이는 일정한 참고 가치가 있습니다. 도움이 필요한 친구들은 이를 참고할 수 있습니다.

패키징 클래스에 대해 이야기하기 전에 먼저 다음 예를 보세요

var str = 'hello';
str.name = 'world';
console.log(str.name);
로그인 후 복사

답은 무엇인가요?

이것은 당연하지 않나요? 위의 str에는 name이라는 속성이 추가되었으며 값은 world여야 합니다.

이 코드를 보면 이게 제일 먼저 떠오르는 것 같아요!

축하합니다. 값이 정의되지 않았습니다!

우리는 js에서 기본 값을 제외한 모든 것이 객체이고 객체가 고유한 속성과 메서드를 가질 수 있다는 것을 알고 있습니다. (메서드는 속성이 함수일 때 메소드라고 부릅니다)

그럼 원래 값에도 고유한 속성이 있는 걸까요?

var str = 'hello';
console.log(str.length) // 6
로그인 후 복사

문자열 길이 메소드를 호출하면 배열처럼 그 숫자를 출력할 수 있습니다. .

문자열은 객체가 아닌데 왜 고유한 메서드가 있나요?

str 속성을 사용하는 한 js는 str을 객체로 래핑하기 위해 new String(str)을 호출하기 때문입니다. 이 객체는 String 위의 메서드를 상속합니다.


이것들은 모두 문자열 메서드입니다.

하지만 문자열에 원하는 속성이 없으면 어떻게 되나요?

그런 다음 js는 String에 속성을 생성하지만 생성 후에는 즉시 삭제됩니다.

이 예를 다시 살펴보겠습니다

var str = 'hello';
str.name = 'world'; 
/*
上面这一步str给他自己设置一个名为name,值为world的属性,于是js就new String(str).name = 'world';
创建之后,销毁
*/
console.log(str.name)
/*
这一步 js又new String(str).name 但是没有值,
所以值为undefined,
*/
로그인 후 복사

마찬가지로 숫자와 부울도

위 내용은 js 래퍼 클래스에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿