原生对象和宿主对象的区别(面试题)

450 阅读1分钟

原生对象

独立于宿主环境的ECMAScript 实现 提供的对象
包含:Object、Function、Array、String、Boolean、Number、 Date、RegExp、Error、EvalError、 RangeError、ReferenceError、SyntaxError、TypeError、URIError

内置对象

就是开发者不必明确实例化的内置对象,因为它已经被内部实例化了
同样是独立于宿主环境。而ECMA-262 只定义了两个内置对象,即Global 和 Math

宿主对象

DOM和BOM都是宿主对象。因为其对于不同的宿主环境所展示的内容不同。其实说白了就是,ECMAScropt 官方未定义的对象都属于宿主对象,因为其未定义的对象太多数是直接通过 ECMAScropt 程序创建的对象