千家信息网

javascript中宿主对象和原生对象有哪些区别

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,今天小编给大家分享一下javascript中宿主对象和原生对象有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有
千家信息网最后更新 2025年12月01日javascript中宿主对象和原生对象有哪些区别

今天小编给大家分享一下javascript中宿主对象和原生对象有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

区别:原生对象是独立于宿主环境的ECMAScript实现提供的对象,即ECMA-262定义的类(引用类型);而宿主对象是由ECMAScript实现的宿主环境提供的对象,所有非原生对象都是宿主对象。

内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集;而后者包括了一些在运行过程中动态创建的对象。

引擎扩展对象是一个并不太大的集合,一般来说比较确定,它们也属于引擎的原生对象(但不属于ECMA规范的原生对象)。

宿主对象不是引擎的原生对象,而是由宿主框架通过某种机制注册到JavaScript引擎中的对象。

一些宿主会把自己提供的对象/构造器也称为"原生对象",例如Internet Explorer 7就把它提供的XMLHttpRequest()称为原生的--与此相对的是在它的更早先版本中通过"new ActiveXObject('Microsoft.XMLHTTP')"这样的方法创建的对象。这种情况下,读者应注意到"宿主的原生对象"与"引擎的原生对象"之间的差异。

一、原生对象

  ECMA-262 把原生对象(native object)定义为"独立于宿主环境的 ECMAScript 实现提供的对象"。

  Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject(服务器方面)、Enumerator(集合遍历类)、RegExp(正则表达式)

  由此可以看出,简单来说,原生对象就是 ECMA-262 定义的类(引用类型)。

二、内置对象

  ECMA-262 把内置对象(built-in object)定义为"由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现"。这意味着开发者不必明确实例化内置对象,它已被实例化了。

  同样是"独立于宿主环境"。根据定义我们似乎很难分清"内置对象"与"原生对象"的区别。而ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是原生对象,根据定义,每个内置对象都是原生对象)。

  如此就可以理解了。内置对象是原生对象的一种。而其包含的两种对象中,Math对象我们经常用到,可这个Global对象是啥东西呢?

  Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在!在ECMAScript中,不存在独立的函数,所有函数都必须是某个对象的方法。

  类似于isNaN()、parseInt()和parseFloat()方法等,看起来都是函数,而实际上,它们都是Global对象的方法。而且Global对象的方法还不止这些。

三、宿主对象

  何为"宿主对象"? ECMAScript中的"宿主"当然就是我们网页的运行环境,即"操作系统"和"浏览器"。所有非原生对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。

  所有的 BOM 和 DOM 对象都是宿主对象。因为其对于不同的"宿主"环境所展示的内容不同。其实说白了就是,ECMAScript官方未定义的对象都属于宿主对象,因为其未定义的对象大多数是自己通过ECMAScript程序创建的对象。TML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML)。

  HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。

  通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

以上就是"javascript中宿主对象和原生对象有哪些区别"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

对象 宿主 环境 引擎 方法 独立 内容 就是 知识 篇文章 不同 函数 标准 元素 实例 实际 实际上 文档 是由 程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 国智网络安全 香港软件开发的工作 着力打造网络安全 网络安全供应链安全 一个号可以进两个不同的服务器吗 南阳哪里学计算机网络技术教程 hp9000服务器发展 融媒网络安全 50个网吧需要几个服务器 吉林大型软件开发项目信息 软件开发 风险管理报告 安装数据库要不要设置程序更新 软件开发费多少税率 国家网络安全战略目标是什么 网络安全小知识日记 七煌是哪个服务器的 社区专职干部后备人才数据库 滴滴云服务器的镜像类型 贵州品质软件开发服务价钱 千万数据库的查询优化 武昌首义学院数据库期末考试 迈阿密网络技术运营 国家网络安全日主题活动 软件开发 风险管理报告 浦东新区项目数据库服务商新报价 11月份软件开发好找工作吗 派出所网络安全协议 中职学校网络安全教育 哪家软件开发学院与腾讯合作 数据库附加到服务器失败
0