学JavaScript 三 面向对象的程序设计

面向对象百度百科

代码:

var person = new Object();
person.name = "Jack";
person.age = 18;
person.sayName = function(){
    alert(this.name)
}

上面的例子创建了一个名为person的对象,并为它添加 了两个属性和一个方法。

上面的例子也可以写成:

var person = new {
    name : "Jack",
    age : 18,
    sayName : function(){
        alert(this.name);
    }
}

这个例子的对象与前面例子中的person对象是一样的。

属性类型:数据属性和访问器属性

  • 数据属性 Configurable:表示是否能通过delete删除属性,默认为true。
  • 数据属性 Enumrable  :表示是否通过for-in循环返回属性,默认为true。
  • 数据属性 Writable     :表示能否修改属性的值,默认true。
  • 数据属性 Value     :包含这个属性的值,默认undefined。
  • 访问器属性 Configurable:表示是否能通过delete删除属性,默认为true。
  • 访问器属性 Enumrable  :表示是否通过for-in循环返回属性,默认为true。
  • 访问器属性 Get  :读取属性时调用的函数。默认为undefined。
  • 访问器属性 Set  :写入属性时调用的函数。默认为undefined。    

 单属性创建:

var person = {};
Object.defineProperty(person,"name",{
    configurable : false,
    value : "Jack"
})
console.log(person.name); //Jack
delete person.name;
console.log(person.name);

上面代码,在非严格模式下什么都不发生,在严格模式下delete会导致错误

多属性创建:

var person = {};
Object.defineProperties(person,{
    name : {
        writable : false,
        configurable : false,
        value : "Jack"
    },
    age : {
        writable : true,
        value : 18
    }
})
console.log(person.name); //Jack
console.log(person.age); //18
person.name = "MACK";
person.age = 90;
console.log(person.name);//Jack
console.log(person.age); // 90
posted @ 2016-09-27 14:14  小严  阅读(69)  评论(0)    收藏  举报