理解对象(通过关联数组和基本包装类型)

在javascript中,所有变量实际上都是某种类型的对象。(除了null和undefinde)

通过关联数组理解对象

在为数组元素给出下标时,不必局限于使用数字,也可以使用字符串:

var lennon = Array();
lennon["name"] = "John";
lennon["year"] = 1940;
lennon["living"] = false;

这样的数组叫做关联数组。本质上,在创建关联数组时,你创建的是Array对象的属性。在上面的例子中,实际上为lennon数组添加了“name”“year”“living”三个属性。

通过基本包装类型理解对象

为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number和String。每当读取一个基本类型值的时候,后台都会创建一个对应的基本包装类型的对象。对于下面的例子:

var s1 = "some text";
var s2 = s1.substring(2);    //这个变量像对象一样有方法!

在读取字符串s1时,后台会自动完成以下处理:

  1. 创建String类型的一个实例;

  2. 在实例上调用指定的方法;

  3. 销毁这个实例。

可以将以上三个步骤想象成执行了以下代码:

var s1 = new String("some text");
var s2 = s1.substring(2);
s1 = null;

引用类型类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开之前作用域都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

你可能感兴趣的:(javascript对象)