이 글의 내용은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!