1. 创建对象
var cat = {
'legs': 3,
'name': 'Harmony',
'color': 'Tortoiseshell'
};
注意四个符号:
{ } // 大括号,包起来
: // 冒号,分割key和value
, // 逗号,分割多个属性
; // 分号,写在最后,因为这是一个语句(定义了一个变量)
这就是个dictionary呀,或者说map。key-value pair。
怎么没有专用的keyword呢? 比如:class。还真是不习惯,js太小气了。还是Swift在这方面比较大方,class、struct、protocol、extension、enum、Dictionary等等,搞了一大堆,随便用。
2. Literals
中文翻译为 “直接量” ,很别扭,还不如音译为 “雷特肉”
array literal: ['a', 'b', 'c']
number literal: 37, 45
Boolean literal: true, false
3. 不带引号的 Key
var cat = {
legs: 3,
name: 'Harmony',
color: 'Tortoiseshell',
'full name': 'Harmony Yan'
};
有个例外,'full name' ,因为中间有空格。
4. 访问对象中的值
cat['name']
cat['full name']
cat.name
space
cat.full name // ???, 中间不能有空格
Object.keys(cat)
cat['full name']
cat.name
space
cat.full name // ???, 中间不能有空格
Object.keys(cat)
到Chrome Console中试一下:
5. 向Object中添加值
var dog = {}; // empty object
dog['legs'] = 4;
dog['name'] = 'kitty';
dog['color'] = 'yellow';
就是个Dictionary,就是个map。一点儿也不像Object。
6. 用 . 语法
dog.legs = 5;
dog.name = 'hello kitty';
dog.color = 'blue';
dog;
dog.ears;
这才有点像object了。
7. 对象的数组,对象中的数组
var pets = [dog, cat]; // the array contains objects
pets;
pets[0]['name'];
pets[0].name;
dog.food = ['bone', 'meat', 'cereal'];
8. 示例:把朋友们放到数组中
var anna = { name: "Anna", age: 11, luckyNumbers: [2, 4, 8, 16] };
var dave = { name: "Dave", age: 5, luckyNumbers: [3, 9, 40] };
var kate = { name: "Kate", age: 9, luckyNumbers: [1, 2, 3] };
var friends = [anna, dave, kate];
friends[1]
friends[1].name
friends[0].luckyNumbers[1];