>  기사  >  웹 프론트엔드  >  JavaScript의 Object.preventExtensions.

JavaScript의 Object.preventExtensions.

Susan Sarandon
Susan Sarandon원래의
2024-10-01 06:30:29335검색

이 글에서는 React 소스 코드의 Object.preventExtensions() 사용법을 분석합니다.

Object.preventExtensions in JavaScript.

Object.preventExtensions()는 hasBadMapPolyfill 플래그가 false이고 Object.preventExtensions 유형이 함수인 경우 호출됩니다.

그런데 Object.preventExtensions()는 무엇을 합니까?

Object.preventExtensions

Object.preventExtensions() 정적 메서드는 새 속성이 객체에 추가되는 것을 방지합니다(즉, 향후 객체 확장을 방지합니다). 또한 객체의 프로토타입이 다시 할당되는 것을 방지합니다.

// Example picked from MDN docs
const object1 = {};
Object.preventExtensions(object1);
try {
 Object.defineProperty(object1, 'property1', {
 value: 42,
 });
} catch (e) {
 console.log(e);
 // Expected output: 
 // TypeError: Cannot define property property1, object is not extensible
}

Object.preventExtension()에 대한 MDN 문서 읽기

React가 Object.preventExtension을 어떻게 사용하나요?

확장자 추가를 허용하지 않는 데는 타당한 이유가 있을 것입니다. 이것이 사용되는 함수인 FiberNode 함수를 따라해봤습니다

이에 대해 Object.preventExtension을 호출하는데 어떤 함수가 FiberNode를 호출합니까?

[createFiberImplClass](https://github.com/facebook/react/blob/5d19e1c8d1a6c0b5cd7532d43b707191eaf105b7/packages/react-reconciler/src/ReactFiber.js#L213-L226)

Object.preventExtension을 호출합니다.

Object.preventExtensions in JavaScript.

이 설명은 개체를 확장할 수 없는 이유를 설명합니다.

비록 이러한 기능을 완전히 이해하지는 못했지만 실제 오픈소스 프로젝트에서 Object.preventExtensions를 어떻게 사용할 수 있는지 알게 되었습니다.

회사 소개:

Think Throo에서는 오픈 소스 프로젝트에 사용되는 고급 코드베이스 아키텍처 개념을 가르치는 임무를 수행하고 있습니다.

Next.js/React에서 고급 아키텍처 개념을 연습하여 코딩 기술을 10배, 모범 사례를 배우고 프로덕션급 프로젝트를 구축하세요.

저희는 오픈 소스입니다 — https://github.com/thinkthroo/thinkthroo(별표를 주세요!)

코드베이스 아키텍처를 기반으로 한 고급 과정을 통해 팀의 기술을 향상하세요. 자세한 내용은 hello@thinkthroo.com으로 문의하세요!

참고자료:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions

  • https://github.com/facebook/react/blob/5d19e1c8d1a6c0b5cd7532d43b707191eaf105b7/packages/react-reconciler/src/ReactFiber.js#L207

  • https://github.com/facebook/react/blob/5d19e1c8d1a6c0b5cd7532d43b707191eaf105b7/packages/react-reconciler/src/ReactFiber.js#L298

  • https://github.com/facebook/react/blob/5d19e1c8d1a6c0b5cd7532d43b707191eaf105b7/packages/react-reconciler/src/ReactFiber.js#L136

  • https://github.com/facebook/react/blob/5d19e1c8d1a6c0b5cd7532d43b707191eaf105b7/packages/react-reconciler/src/ReactFiber.js#L213-L226



위 내용은 JavaScript의 Object.preventExtensions.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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