JavaScript 문자열에 속성이 없는 이유는 무엇이며 이 제한 사항을 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-10-27 00:17:03
원래의
458명이 탐색했습니다.
Why can't JavaScript strings have properties and how can you work around this limitation? 
문자열과 같은 기본 값에 속성을 추가하려고 하면 느슨한 모드에서는 작동하지 않거나 엄격 모드에서는 TypeError가 발생합니다. 이는 JavaScript가 이러한 할당을 새 속성을 생성하는 것이 아니라 변수 값을 설정하려는 시도로 해석하기 때문입니다.

날짜 정렬에 대한 해결 방법

문자열에는 속성을 추가할 수 없습니다. , 그리드에서 날짜 정렬을 용이하게 하는 해결 방법이 있습니다:

ES5 접근자 속성
<code class="js">var test = "test";
test.test = "test inner";
console.log(test); // "test"
console.log(test.test); // undefined</code>
로그인 후 복사

ES5는 속성에 대한 getter 및 setter 함수를 정의할 수 있는 접근자 속성을 도입했습니다. 날짜 객체를 반환하는 String 프로토타입에 접근자 속성을 정의할 수 있습니다.

그러나 내장된 String 프로토타입을 수정하는 것은 좋지 않은 습관으로 간주됩니다.

정렬 함수 정의

또는 날짜 문자열을 인식하고 그에 따라 비교하는 사용자 정의 정렬 함수를 정의할 수 있습니다.
<code class="js">Object.defineProperty(String.prototype, 'date', {
    get: function () {
      return new Date(this);
    }
});

var dateString = "2023-05-18";
var dateObject = dateString.date;
console.log(dateObject); // Date { 2023, 4, 18 ... }</code>
로그인 후 복사

사용자 정의 날짜 형식 지정자 만들기

JavaScript Date 생성자를 확장할 수 있습니다. 정렬하기 쉬운 문자열 표현을 반환하는 사용자 정의 형식 지정 함수:

위 내용은 JavaScript 문자열에 속성이 없는 이유는 무엇이며 이 제한 사항을 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!