一   对象属性

  a.对象定义:

    无序属性的集合,其属性可以包含基本值、对象或者函数;

  b.两种创建方式:

    1.构造函数;

1 var person = new Object();
2 person.name = "Winston";
3 person.age = 32;
4 person.job = "Software Engineer";
5 
6 person.sayName = function(){
7     console.log(this.name);
8 }

    2.对象字面量;

1 var person = {
2     name:"Winston",
3     age:32,
4     job:"Software Engineer",
5     
6     sayName:function(){
7         console.log(this.name);
8     }
9 }

  c.属性类型

    1.数据属性,用Object.defineProperty修改

      [[Configurable]]    能否修改属性特性、能否通过delete删除属性从而重新定义属性、能否把属性修改为访问器属性;

      [[Enumerable]]      能否通过for-in循环返回属性,默认为false

      [[Wirtable]]            能否修改属性的值,默认为false

      [[Value]]                 属性值

    2.访问器属性,用Object.defineProperty定义                                                                  

      [[Configurable]]    能否修改属性特性、能否通过delete删除属性从而重新定义属性、能否把属性修改为访问器属性;

      [[Enumerable]]      能否通过for-in循环返回属性,默认为false

      [[Get]]           读取属性时调用的函数,默认为undefined

      [[Set]]           写入属性时调用的函数,默认为undefined