1.通过运算符“.”进行对象属性的存储。
2.关联数组(associative array)
简单来说就是这样:
var Hero_Name = get_Name_FromXXX();
var Hero_Level = get_Level_FromXXX();
Dota[Hero_Name] = Hero_Level;
我有一个英雄,是从页面获取了名字,再从页面获取了等级,然后都把它们赋值给Dota这个对象,这两个数组之间是有关联关系的,一个英雄名称,对应一个英雄等级。
这个地方由于在输入英雄名称之前,我无法取到这个Hero_Name的属性名,这样就不能使用“.”操作符来取得Hero_Level属性的值,这种情况下我们就需要用到关联数组来解决问题。
之后可以用for/in循环取值,这是不知道属性名时取值的唯一方法。
3.通用的Object属性和方法:
(1)Constructor属性
该属性引用了初始化这个对象的构造函数,所以该属性可以用于判断此对象的类型。
var d = new Date();
d.constructor == Date; //该值为true
(2)toString()方法
基本上和java中的默认toString()方法一样,很多情况下需要自己重写。
(3)valueOf()方法
和toString()基本类似,只不过不是反悔一个string,而是返回一个数字,很多情况下也需要重写
其他几个方法好像用到的不多,先不记了。
4.数组
(1)数组下标是稀疏的,可以定义不用连续。 比如定义了a[0] = 1; a[10000] = 2;
实际上只是定义了两个值,中间的不存在,而且也不会被分配内存。
(2)由于上述原因,length值只保证比下标最大值 +1 ,不保证数量正确。
(3)之前提过的,JS中的数组不支持多维数组,但是支持数组内一个值为一个完整的数组,可以说是变相的多维数组。