>웹 프론트엔드 >JS 튜토리얼 >Polyfill 주석 사용 및 JS 수정 방지

Polyfill 주석 사용 및 JS 수정 방지

php中世界最好的语言
php中世界最好的语言원래의
2018-06-04 10:50:072543검색

이번에는 JS에서 Polyfill 주석 사용 및 수정 방지에 대해 알려드리겠습니다. JS에서 Polyfill 주석 사용 및 수정 방지 시 Notes란 무엇인가요?

ES5와 HTML5의 기능이 점차 다양한 브라우저에 구현되면서. JS 폴리필(심이라고도 함)이 인기를 얻었습니다. 폴리필은 새 버전의 브라우저에서 완전히 정의되고 기본적으로 구현되는 특정 기능의 시뮬레이션입니다. 예를 들어 ES5는 배열을 위한 forEach() 함수를 추가합니다. 이 메서드는 ES3에서 모의 ​​구현을 가지므로 이전 브라우저에서도 이 메서드를 사용할 수 있습니다. 폴리필의 핵심은 모의 구현이 브라우저의 기본 구현과 완전히 호환된다는 것입니다. 소수의 브라우저가 이러한 기능을 기본적으로 구현하기 때문에 다양한 상황에서 이러한 기능을 처리하는 것이 가능한 한 표준을 충족하는지 확인하는 것이 필요합니다.

목표를 달성하기 위해 폴리필은 자신이 소유하지 않은 개체에 몇 가지 메서드를 추가하는 경우가 많습니다. 나는 폴리필의 팬은 아니지만 다른 사람들이 폴리필을 사용하는 것을 이해합니다. 다른 개체 수정과 비교할 때 폴리필에는 경계가 있으며 상대적으로 안전합니다. 이러한 메서드가 존재하고 네이티브 구현에서 작동하기 때문에 폴리필은 네이티브 메서드가 존재하지 않는 경우에만 이러한 메서드를 추가하고 해당 동작은 네이티브 버전 메서드와 정확히 동일합니다.

폴리필의 장점은 브라우저가 기본 구현을 제공하는 경우 매우 쉽게 제거할 수 있다는 것입니다. 폴리필을 사용하는 경우 어떤 브라우저가 기본 구현을 제공하는지 알아내야 합니다. 그리고 폴리필 구현이 브라우저의 기본 구현과 완전히 일치하는지 확인하고 클래스 라이브러리가 이러한 메서드의 정확성을 확인하기 위한 테스트 케이스를 제공하는지 다시 확인하세요. 폴리필의 단점은 브라우저의 기본 구현에 비해 구현이 부정확할 수 있어 많은 문제를 일으킬 수 있으며 구현하지 않는 것이 나을 수도 있다는 것입니다.

최상의 유지 관리를 위해 폴리필 사용을 피하고 대신 기존 기능 위에 파사드를 만드세요. 이 접근 방식은 최고의 유연성을 제공하며 이는 기본 구현에 버그가 있는 경우(폴리필 방지) 특히 중요합니다. 이 경우 네이티브 API를 직접 사용하고 싶지 않을 것입니다. 그렇지 않으면 네이티브 구현에서 버그를 격리할 수 없습니다.

ES5에는 객체 수정을 방지하는 여러 가지 방법이 도입되었습니다. 이러한 기능을 이해하는 것이 중요합니다. 그러면 누구도 고의든 실수로든 의도하지 않은 기능을 수정할 수 없도록 이러한 개체를 잠그는 등의 작업을 수행할 수 있습니다. 현재(2018) 브라우저는 ES5의 이러한 기능을 지원하며 세 가지 수준의 잠금 수정이 있습니다.

Prevent Extension(

Object.preventExtension()): 객체에 속성 및 메서드 "추가"를 금지하지만 기존에 존재했습니다. 속성 및 메서드는 수정 또는 삭제될 수 있습니다.

Sealing(Object.seal()): "확장 방지"와 유사하며 개체의 기존 속성 및 메서드를 "삭제"하는 것이 금지됩니다.

Freezing(Object.freeze()) : "봉인"과 유사하며 객체에 대한 기존 속성 및 메서드의 "수정"을 금지합니다(모든 필드는 읽기 전용입니다)

각 잠금 유형에는 두 가지 방법이 있습니다. 하나는 작업 수행을 위한 것이고 다른 하나는 해당 작업이 적용됩니다. 확장을 방지하기 위해 Object.preventExtension() 및 Object.isExtensible() 두 함수를 사용할 수 있습니다. 관련 메소드의 사용법은 MDN에서 확인할 수 있으므로 여기서는 자세히 다루지 않겠습니다.

ES5에서 이러한 방법을 사용하는 것은 프로젝트가 귀하의 동의 없이 수정을 위해 잠기지 않도록 하는 좋은 방법입니다. 코드 베이스의 작성자라면 실수로 수정되지 않도록 핵심 라이브러리의 특정 부분을 잠그거나 확장이 유지되도록 허용하는 영역을 강제로 적용할 수 있습니다. 애플리케이션 개발자인 경우 수정하고 싶지 않은 애플리케이션 부분을 잠그십시오. 두 경우 모두 위의 잠금 방법은 해당 개체의 기능이 완전히 정의된 후에만 사용할 수 있습니다. 객체가 잠긴 후에는 잠금을 해제할 수 없습니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

웹 개발에서 원래 값을 감지하는 방법

웹 개발에서 전역 변수 사용을 피해야 하는 이유

위 내용은 Polyfill 주석 사용 및 JS 수정 방지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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