>  기사  >  웹 프론트엔드  >  함수, 문자열, 숫자는 실제로 JavaScript의 객체처럼 동작합니까?

함수, 문자열, 숫자는 실제로 JavaScript의 객체처럼 동작합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-12 04:23:02393검색

Do Functions, Strings, and Numbers Actually Behave Like Objects in JavaScript?

JavaScript에서 함수, 문자열 및 숫자 객체가 있습니까?

거의 모든 것을 객체로 선언하는 JavaScript의 명성은 특히 혼란스러울 수 있습니다. 초보자. 메서드와 속성을 갖춘 객체가 중요한 역할을 하는 것은 사실이지만 문자열, 숫자, 함수와 같은 기본 요소는 다소 다르게 동작합니다.

기본 값과 객체

JavaScript에서 기본 값은 변경할 수 없으며 점 표기법을 통해 액세스할 수 없습니다. 그러나 JavaScript는 기본 요소에 객체와 유사한 메서드 및 속성을 부여하는 래퍼 객체(문자열, 숫자 및 부울)를 제공합니다.

래퍼 객체

래퍼 객체는 뒤에서 생성됩니다. 프리미티브의 속성에 액세스할 때의 장면. 예를 들어 다음 코드에서는

var s = "foo";
var sub = s.substring(1, 2);

JavaScript가 자동으로 String 객체를 생성하고 substring() 메서드를 호출한 다음 해당 객체를 삭제합니다. 이제 하위 변수에는 기본 문자열 "o"가 포함됩니다.

기본 요소에 속성을 할당할 수 있는 것처럼 보일 수 있지만 이러한 할당은 실제로 즉시 삭제되는 래퍼 개체에서 수행됩니다. 따라서 이러한 속성을 검색하면 다음 예에서 설명한 것처럼 정의되지 않은 결과가 생성됩니다.

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined

Functions as Objects

프리미티브와 달리 함수는 상속하는 완전한 개체입니다. 개체에서. 다음 코드에서 볼 수 있듯이 속성을 가질 수 있습니다.

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea

요약하자면 기본 요소는 JavaScript에서 본질적으로 개체 특성을 갖지 않습니다. 그러나 래퍼 객체는 객체와 유사한 동작의 외관을 제공하는 반면, 함수는 속성 및 메서드와 상호 작용할 수 있는 실제 객체입니다. 이러한 구별은 JavaScript의 유형 시스템을 이해하고 정보에 입각한 코딩 결정을 내리는 데 필수적입니다.

위 내용은 함수, 문자열, 숫자는 실제로 JavaScript의 객체처럼 동작합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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