zoukankan      html  css  js  c++  java
  • JavaScript快速入门-ECMAScript对象介绍

    一、概念介绍

    在 ECMAScript 中,所有对象并非同等创建的。一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。

    要理解这三种对象,先要理解宿主环境。

    1、宿主环境

    一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序。

    如:web浏览器,一些桌面应用系统等。即由web浏览器或是这些桌面应用系统构成的环境即宿主环境。

    在python中类似于python解释器。

    2、原生对象(本地对象)

    独立于宿主环境的ECMAScript提供的对象。与宿主环境无关,在javascript(网景浏览器)、nodejs(node平台)、jscript(ie浏览器)、typescript(微软平台)等等中均有这些对象。

    简单来说,本地对象就是 ECMA-262 定义的类(引用类型或原始类型)。在运行过程中动态创建的对象,需要new。

    在python中类似原生对象,如:数字、字符串、列表、元组、字典、类。

    3、内置对象(build-in)

    由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现,即在引擎初始化阶段就被创建好的对象。

    这意味着开发者不必明确实例化内置对象,它已被实例化了。

    在python中的内建对象,比如sys、os、math等模块。

    4、宿主对象

    即由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象,ECMAScript官方未定义的对象都属于宿主对象,所有非本地对象都是宿主对象。

    宿主提供对象原理--->由宿主框架通过某种机制注册到ECscript引擎中的对象,如宿主浏览器(以网景为参考)会向ECscript注入window对象,构建其实现javascript。

    宿主对象就是执行JS脚本环境提供的对象。对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,所以又称为浏览器对象,如IE、Firefox等浏览器提供的对象。不同的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带来浏览器兼容问题,增加开发难度。

    浏览器对象有很多,如Window和Document等等。

    有点类似python中的各种*ython,比如:Python,Cython,Jython,IRONpython。其实就是为运行python脚本而提供的专有环境。

    1、PYTHON,CYTHON

    将这两个放在一起,是因为python的标准和原始实现就是基于cython的,由于python的源代码是需要将python源码首先编译为c代码,然后再编译为本机代码的方式运行的,由于c语言和本机代码的关系,执行速度比较快。

    2、JYTHON

    首先将python编译为基于java字节码的字节码文件,然后在java虚拟机jvm上运行java字节码。

    3、IRONpython

    将python编译为基于.NET的CLI的中间语言文件,然后在CLR上运行。

    5、自定义对象

    顾名思义,就是开发人员自己定义的对象。JS允许使用自定义对象,使JS应用及功能得到扩充。

    二、本地对象

    简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。有以下这些:

    • Object(对象)
    • Function(函数)
    • Array(数组)
    • String
    • Boolean
    • Number
    • Date
    • RegExp
    • Error
    • EvalError
    • RangeError
    • ReferenceError
    • SyntaxError
    • TypeError
    • URIError

    常用对象:

    String对象

    Array对象

    Date对象

    Number对象

    Function对象

    RexExp对象

    三、内置对象

    Global对象

    Math对象

    四、宿主对象

    DOM对象

    BOM对象

  • 相关阅读:
    Qt 4.7
    CMake记录(一)
    CMake记录(二)
    a critical review of preetham skylight model 笔记
    在webform中清空多个控件的值的简单方法
    Java学习网站 [摘自互联网]
    关于Google API的学习
    DataGrid连接的
    http://www.dnc.com.cn
    在DataGrid中显示数据库中的图片
  • 原文地址:https://www.cnblogs.com/skyflask/p/9027356.html
Copyright © 2011-2022 走看看