• 《JS高级程序设计》PART3.对象基础


    3.2对象应用

    · 对象废除:如果一个对象有2个及以上引用,则要正确的废除该对象,必须将其所有引用都设置为null。

    js和java一样,有垃圾回收机制,会自动收回已无引用指向的对象。

    · 早绑定和晚绑定

    绑定:把对象的接口和实例结合在一起的方法。

    早绑定:指在实例化对象之前定义他的特性和方法;

    玩绑定:指在编译器或解释程序在运行前,不知道对象的类型。ECMASCript采用的是晚绑定。

    3.3对象类型

    1.本地对象

    · Array类

    以下用示例来说明其用法:

    var arry = new Array(10); //不知大小时,可以省略,在后面的代码中可以任意增加

    var arry = new Array("red","green","blue");

    alert(arry[1]);//"green"

    var sCor = "red,green,blue";

    var arry = sCor.split(",");//转化为Array对象

    var sCor = "green";

    var arry = sCor.split("");//使用空串分割,则会分成各个字符:"g,r,e,e,n"

    Array有2个String具有的方法:concat():连接 /slice():截取部分内容

    Array提供了栈的功能:

    var stack = new Array;

    stack.push("red");

    stack.push("green");

    alert(stack.toString());//"red,green"

    var aa = stack.pop();//"green"

    shift():将删除数组第一项,并作为函数值返回。/Unshift反之。

    通过shift和push(),可完成队列的功能。

    · Date类

    var d = new Date(Date.parse("6/1/2011"));//如果传递的字符串无法转为日期,将为NaN

    var d = new Date(Date.UTC(2011,0,6));//设置月份特别注意,因为其月的设置从0开始 (2011-1-6)

    2.内置对象

    ECMASCript中提供了2个内置对象:Global和Math;

    Global的eval()方法:该方法就像整个ECMASCript解释程序,接受一个参数,将其解释为真正的ECMASCript语句,然后把它插入到该函数所在的位置。

    3.宿主对象

    所有非本地对象都是宿主对象,即由ECMASCript实现宿主环境的对象。所有的BOM和DOM对象都是宿主对象。

    3.5定义类或对象

    使用构造函数形式:

    function Car (sColor,iDoor){

    this.color = sColor;

    this.doors = iDoor;

    this.showColor = function(){

    alert(this.color)

    };

    }

    var oCar = new Car ('red',4);

    var oCar2 = new Car("green",3);

    注:对象的结构不用实现定义,直接在构造函数中按需取用。

    以上创建对象中所拥有的函数为2份,出现内存浪费。(c++java中所有对象的函数共用一份)

    改进:将函数提出来,在构造函数之后,用prototype添加.(prototype属性可用来定义方法)

    Car.prototype.showColor = function(){ alert(this.color};

    3.6修改对象

    创建新方法:Number.prototype.toHexString = function(){return this.toString(16)};

    重定义已有的方法:再定义一遍,就会覆盖,因为ECMASCript没有重载。

     

    More:http://blog.donews.com/me1105/archive/2011/02/10/118.aspx

  • 相关阅读:
    Servlet梳理一
    String和StringBuffer的区别
    谈谈面对将要来到的第一份工作
    shell grep文本搜索
    Shell cut分割
    python的学习之路:计算
    web端和手机端测试有什么不同
    让TortoiseGit记住帐号密码方法
    操纵IE,模拟用户登录
    MVC路由配置.html不能识别
  • 原文地址:https://www.cnblogs.com/me115/p/1950945.html
Copyright © 2020-2023  润新知