您好,欢迎访问一九零五行业门户网

javascript宿主对象和内置对象的区别是什么

区别:1、内置对象是原生对象的一个子集属于原生对象,而宿主对象不是引擎的原生对象;2、内置对象是由ecmascript实现提供的独立于宿主环境的所有对象,而宿主对象是ecmascript官方未定义的对象。
本教程操作环境:windows10系统、javascript1.8.5版、dell g3电脑。
javascript宿主对象和内置对象的区别是什么原生对象包括内置对象(javascript引擎初始化时就被创建好的对象)和javascript运行过程中动态创建的对象,而宿主对象就是javacript引擎在运行过程中,javascript宿主环境(运行环境)通过某种机制注入到javascript引擎中的对象
具体区别:
内置(build-in)对象:总是在引擎初始化阶段就被创建好的对象,是原生对象的一个子集。内置对象就是由ecmascript提供的独立于宿主对象之外的,包含global和math(数字对象)和内置对象
原生(naitve)对象:除了内置对象,还包括了一些在运行过程中动态创建的对象。原生对象独立于宿主环境之外,包括object,array,function,number,string,date
宿主对象:宿主对象不是引擎的原生对象,而是由宿主框架通过某种机制注册到javascript引擎中的对象。javascipt的运行环境就是操作系统和浏览器,包含两类宿主对象bom和dom
一、原生对象 
        ecma-262 把原生对象定义为“独立于宿主环境的 ecmascript 实现提供的对象”。
        包含: object、function、array、string、boolean、number、date、regexp、error、evalerror、rangeerror、referenceerror、syntaxerror、typeerror、urierror、activexobject(服务器方面)、enumerator(集合遍历类)、regexp(正则表达式)
 二、内置对象
        ecma-262 把内置对象(built-in object)定义为“由 ecmascript 实现提供的、独立于宿主环境的所有对象,在 ecmascript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。
        同样是“独立于宿主环境”。ecma-262 只定义了两个内置对象,即 global 和 math (它们也是原生对象,根据定义,每个内置对象都是原生对象)
三、宿主对象 
        何为“宿主对象”? ecmascript中的“宿主”当然就是我们网页的运行环境,即“操作系统”和“浏览器”。
        bom 和 dom 都是宿主对象。因为其对于不同的“宿主”环境所展示的内容不同。其实说白了就是,ecmascript 官方未定义的对象都属于宿主对象,因为其未定义的对象大多数是自己通过 ecmascript 程序创建的对象
相关推荐:javascript学习教程
以上就是javascript宿主对象和内置对象的区别是什么的详细内容。
其它类似信息

推荐信息