Javascript学习笔记(一)--理解对象

一、创建对象的两种方式

第一种:
var person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

第二种
var person={
    firstname:"John",
    lastname:"Doe",
    age:50,
    eyecolor:"blue"
};

二、属性类型

1、数据属性

  四个特性:

1.1 [[Configurable]]

  表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为true

1.2 [[Enumerable]] 

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

1.3 [[Writable]]

  表示能否修改属性的值,默认值为true

1.4 [[Value]]

  表示这个属性的数据值

要修改属性默认的特性,必须使用ECMAScript5的Object.defineProperty()方法,这个属性接受三个参数:属性所在的对象,属性的名字和一个特性。

如果通过Object.defineProperty()方法修改configurable设置为false,表示不能从对象中删除属性。如果对这个属性调用delete,则在非严格模式下什么也不会发生,而在严格模式下会导致错误。而且,一旦把属性定义为false,就不能把它变回true了。

2、访问器属性

  访问器属性不包含数据值;他们包含一对getter和setter函数,在读取访问器属性时,会调用getter函数;在写入访问器属性时,会调用setter函数并传入新值。

原文地址:https://www.cnblogs.com/shanoon/p/5308645.html