本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘。
 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