• ECMAScript 函数对象应用


    对象的创建和销毁都在 JavaScript 执行过程中发生,理解这种范式的含义对理解整个语言至关重要

     

    声明和实例化

    对象的创建方式是用关键字 new 后面跟上实例化的类的名字:

    var oObject = new Object();
    var oStringObject = new String();

    第一行代码创建了 Object 类的一个实例,并把它存储到变量 oObject 中。第二行代码创建了 String 类的一个实例,把它存储在变量 oStringObject 中。如果构造函数无参数,括号则不是必需的。因此可以采用下面的形式重写上面的两行代码:

    var oObject = new Object;
    var oStringObject = new String;
     
     

    在 ECMAScript 中,不能访问对象的物理表示,只能访问对象的引用。每次创建对象,存储在变量中的都是该对象的引用,而不是对象本身

    对象废除

    ECMAScript 拥有无用存储单元收集程序(garbage collection routine),意味着不必专门销毁对象来释放内存。当再没有对对象的引用时,称该对象被废除(dereference)了。运行无用存储单元收集程序时,所有废除的对象都被销毁。每当函数执行完它的代码,无用存储单元收集程序都会运行,释放所有的局部变量,还有在一些其他不可预知的情况下,无用存储单元收集程序也会运行。

    把对象的所有引用都设置为 null,可以强制性地废除对象。例如:

    var oObject = new Object;
    // do something with the object here
    oObject = null;

    当变量 oObject 设置为 null 后,对第一个创建的对象的引用就不存在了。这意味着下次运行无用存储单元收集程序时,该对象将被销毁。

    每用完一个对象后,就将其废除,来释放内存,这是个好习惯。这样还确保不再使用已经不能访问的对象,从而防止程序设计错误的出现。此外,旧的浏览器(如 IE/MAC)没有全面的无用存储单元收集程序,所以在卸载页面时,对象可能不能被正确销毁。废除对象和它的所有特性是确保内存使用正确的最好方法。

    注意:废除对象的所有引用时要当心。如果一个对象有两个或更多引用,则要正确废除该对象,必须将其所有引用都设置为 null。

    早绑定和晚绑定

    所谓绑定(binding),即把对象的接口与对象实例结合在一起的方法。

    早绑定(early binding)是指在实例化对象之前定义它的属性和方法,这样编译器或解释程序就能够提前转换机器代码。在 Java 和 Visual Basic 这样的语言中,有了早绑定,就可以在开发环境中使用 IntelliSense(即给开发者提供对象中属性和方法列表的功能)。ECMAScript 不是强类型语言,所以不支持早绑定。

    另一方面,晚绑定(late binding)指的是编译器或解释程序在运行前,不知道对象的类型。使用晚绑定,无需检查对象的类型,只需检查对象是否支持属性和方法即可。ECMAScript 中的所有变量都采用晚绑定方法。这样就允许执行大量的对象操作,而无任何惩罚。

  • 相关阅读:
    Winform中实现FTP客户端并定时扫描指定路径下文件上传到FTP服务端然后删除文件
    NodeRED简介与Windows上安装、启动和运行示例
    CentOS7中后台运行NodeRED(关闭窗口也能访问服务)
    CentOS7中使用PM2设置NodeRED开机自启动
    Windows上编译github源码方式运行NodeRED,以及离线迁移安装NodeRED
    升级npm
    FastAPI 学习之路(十八)表单与文件
    FastAPI 学习之路(十七)上传文件
    ArcGIS9.2新功能之File Geodatabase(对比PGDB) 【转】
    Catalog无法连接Server
  • 原文地址:https://www.cnblogs.com/xiaozhanga4/p/2480039.html
Copyright © 2020-2023  润新知