>  기사  >  웹 프론트엔드  >  자바스크립트에서 호스트 객체와 네이티브 객체의 차이점은 무엇입니까

자바스크립트에서 호스트 객체와 네이티브 객체의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2021-07-06 14:45:003834검색

차이점: 네이티브 객체는 호스트 환경과 독립적으로 ECMAScript 구현에 의해 제공되는 객체, 즉 ECMA-262에 의해 정의된 클래스(참조 유형)인 반면, 호스트 객체는 ECMAScript에 의해 구현된 호스트 환경에 의해 제공되는 객체이며 모든 비 -네이티브 개체는 호스트 개체입니다.

자바스크립트에서 호스트 객체와 네이티브 객체의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

내장 객체와 기본(Naitve) 객체의 차이점은 전자는 항상 엔진 초기화 단계에서 생성되고 후자의 하위 집합인 반면 후자는 실행 프로세스 중에 동적으로 생성되는 일부 객체를 포함한다는 것입니다. 생성된 객체.

엔진 확장 개체는 그다지 크지 않은 집합입니다. 일반적으로 이들은 엔진의 기본 개체에 속하지만 ECMA 사양의 기본 개체에는 속하지 않습니다.

호스트 개체는 엔진의 기본 개체가 아니라 특정 메커니즘을 통해 호스트 프레임워크에 의해 JavaScript 엔진에 등록된 개체입니다.

일부 호스트는 "네이티브 개체"를 제공하는 개체/생성자를 호출합니다. 예를 들어 Internet Explorer 7은 "새 ActiveXObject"와 같은 메서드를 통해 생성된 개체와 달리 네이티브로 제공하는 XMLHttpRequest()를 호출합니다. ('Microsoft.XMLHTTP')". 이 경우 독자는 "호스트의 기본 개체"와 "엔진의 기본 개체" 간의 차이점에 유의해야 합니다.

1. 네이티브 객체

  ECMA-262는 네이티브 객체를 "호스트 환경에 독립적인 ECMAScript 구현에 의해 제공되는 객체"로 정의합니다.

 Object, Function, Array, String, Boolean, Number, Date, RegExp, Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, ActiveXObject(서버), Enumerator(컬렉션 순회 클래스), RegExp(정규식)

  간단히 말해서 네이티브 객체는 ECMA-262에서 정의한 클래스(참조 유형)임을 알 수 있습니다.

2. 내장 객체

ECMA-262는 내장 객체를 "호스트 환경과 관계없이 ECMAScript 구현에 의해 제공되며 ECMAScript 프로그램이 실행되기 시작할 때 나타나는 모든 객체"로 정의합니다. 이는 개발자가 내장 개체를 명시적으로 인스턴스화할 필요가 없으며 이미 인스턴스화되었음을 의미합니다.

 또한 "호스트 환경에 독립적"입니다. 정의에 따르면 "내장 개체"와 "네이티브 개체"의 차이를 구별하는 것은 어려운 것 같습니다. ECMA-262는 Global과 Math라는 두 가지 내장 객체만 정의합니다(이것들도 네이티브 객체이며 정의에 따라 모든 내장 객체는 네이티브 객체입니다).

 이해가 됩니다. 내장 객체는 기본 객체의 한 유형입니다. 포함된 두 객체 중 Math 객체를 자주 사용하는데, 이 Global 객체는 무엇일까요?

 Global 객체는 실제로 전혀 존재하지 않기 때문에 ECMAScript에서 가장 특별한 객체입니다! ECMAScript에는 독립적인 함수가 없으며 모든 함수는 객체의 메서드여야 합니다.

  isNaN(),parseInt(),parseFloat() 메소드와 유사하게 모두 함수처럼 보이지만 사실은 모두 Global 객체의 메소드입니다. 그리고 Global 개체의 메서드는 여기서 끝나지 않습니다.

3. 호스트 객체

  "호스트 객체"란 무엇입니까? ECMAScript의 "호스트"는 물론 웹 페이지의 실행 환경, 즉 "운영 체제"와 "브라우저"입니다. 모든 비네이티브 객체는 호스트 객체, 즉 ECMAScript로 구현된 호스트 환경에서 제공되는 객체입니다.

 모든 BOM 및 DOM 개체는 호스트 개체입니다. 다른 "호스트" 환경에 대해 다른 내용을 표시하기 때문입니다. 사실 직설적으로 말하면 ECMAScript에서 공식적으로 정의하지 않은 객체는 호스트 객체에 속합니다. 정의되지 않은 객체의 대부분은 ECMAScript 프로그램에서 생성된 객체이기 때문입니다. TML DOM은 W3C 표준(HTML Document Object Model, Document Object Model for HTML의 약어)입니다.

 HTML DOM은 HTML용 표준 개체 시리즈와 HTML 문서 액세스 및 처리를 위한 표준 방법을 정의합니다.

 DOM을 통해 모든 HTML 요소와 해당 요소에 포함된 텍스트 및 속성에 액세스할 수 있습니다. 컨텐츠는 수정 및 삭제가 가능하며, 새로운 요소를 생성할 수도 있습니다.

【관련 권장 사항: javascript 학습 튜토리얼

위 내용은 자바스크립트에서 호스트 객체와 네이티브 객체의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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