本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘。
1 var myObject = {};
之后便可以向它添加新成员:
1 myObject.name = "张三"; myObject.age = 29;
对象字面量就是包围在一对花括号中的零或多个“name/value"对。
1 //通过对象字面量创建对象 属性的名字可以加也可以不加双引号
var person = {
"name": "张三",
age: 29
};
使用对象字面量方式,定义嵌套的对象很容易
1 //使用字面量创建嵌套的对象
var embedObj = {
info: "information",
//内嵌的对象
inner: {
id: 0,
value: 100
},
//内嵌的数组
arr: ["one", "two", "three"]
};
1 //定义对象方法
var obj = {
sayHello: function (name) {
console.info("你好," + name + "!");
}
};
obj.sayHello("qiu"); //你好,qiu
2).也可以直接追加到现有对象中.
1 var obj2 = {};
obj2.sayHello = function (name) {
console.info("你好," + name + "!");
};
1 //访问对象
var exampleObj = {
info: "information",
//内嵌的对象
inner: {
id: 0,
value: 100
},
//内嵌的数组
arr: ["one", "two", "three"],
//方法
sayHello: function (name) {
console.info("你好," + name + "!");
}
};
//使用点表示法访问对象属性
console.info(exampleObj.info); //information
console.info(exampleObj.inner.value); //100
console.info(exampleObj.arr[0]); //one
//如果要访问的属性不存在,可以使用||指定默认值
console.info(exampleObj.notExist || "属性默认值"); //属性默认值
//使用[]访问对象属性
console.info(exampleObj['info']); //information
//调用对象方法
exampleObj.sayHello('张三'); //你好,张三
exampleObj['sayHello']('李四'); //你好,李四
1 //编程列出exampleObj对象的属性与方法
for (var p in exampleObj) {
console.info(p+ "类型:" + (typeof exampleObj[p]) );
}
// info类型:string
// inner类型:object
// arr类型:object
// sayHello类型:function
1 //删除对象的属性与方法
delete exampleObj.info;
delete exampleObj.sayHello;
删除一个对象属性之后,再对它进行访问,将得到一个undefined。
1 //验证属性己删除
console.info(exampleObj.info);//undefined
console.info(exampleObj.sayHello === undefined); //true
//exampleObj.sayHello('张三'); //TypeError
1 //使用&&避免出现TypeError导致后继代码无法执行
exampleObj.sayHello && exampleObj.sayHello('张三');
//尽管sayHello方法己被删除,上述代码得到一个undefined
//但后面的代码仍然可以继续执行
1 //作为函数参数的对象
function displayPerson(person) {
console.info('name=' + (person.name || '无名氏'));
console.info('age=' + (person.age || -1));
};
//使用对象字面量直接将对象传入
displayPerson({
"name": "张三",
"age": 29
}); //name=张三
//age = 29
displayPerson({}); //name=无名氏
//age=-1