(12)javascript 面向对象 理解对象

1 声明

  var person = new Object();

  person.name = "Jackey";//属性

  person.age = 20;//属性

  person.sayName = function(){};//方法

  2 var person = {

    name:"Jackey",

    age:20,

    sayName:function(){}

  };

2 属性类型

  1 [Configurable] 表示能否通过delete删除属性/能否修改属性的特性

    /能否把属性修改为访问器属性。默认为true

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

  3 [Writable] 表示能否修改属性的值,默认为true

  4 [Value]包含这个属性的数据值,读取属性值的时候,从这个位置读。写入属性值的时候

    把新值保存到这个位置。默认值为undefined

  var person = {

    name:"Jackey"

  };

  将[Value]设置为Jackey,如果要修改属性的默认特性,必须使用ECMAScript5的object.definedProperty()

  这个方法必须接受3个参数:属性所在对象(person),属性的名字,描述符对象。

  var person={};

  Object.definedproperty(person,"name",{

    writable:false,

    value:"Cassi"

    });

  person.name="Jackey";//不能修改

  alert(person.name);//Cassi

  configurable 设置为false:不能删除对象中的属性

  var person = {};

  Object.definedProperty(person,"name",{

    configurable:false,

    value:"Jackey"

  });

  alert(person.name);//Jackey

  delete person.name;

  alert(person.name);//Jackey不能删除,可正常显示

  一旦修改了属性的configurable writable属性,就不能再修改了,否则会报错

  ie8是第一个实现Object.definedProperty方法的浏览器

  访问器属性:getter setter:省略

  

原文地址:https://www.cnblogs.com/lihaozhou/p/3576485.html