JavaScript高级程序设计读书笔记(六)之面向对象程序设计

2017-09-11  本文已影响0人  惶惶不安的青年

对象即是无序属性的集合,其属性可以包含基本值,对象和函数。

一、理解对象

创建自定义对象通常有两种方法,第一种就是创建一个Object的实例,然后再为其添加属性和方法。第二种方法即对象字面量法,一般推荐使用这种方法创建对象。
//第一种
var obj = new Object();
obj.name='name';
obj.sayName=function(){};
//第二种
var obj = {
  name : 'name';
  sayName:functoin(){};
}

1、属性类型

JavaScript中定义了两种不同的属性:数据属性和访问器属性。数据属性一般用于存储数据数值,而访问器属性一般进行get/set操作,不能直接存储数据数值。

数据属性
var obj={
    name:'minRed'//数据属性,此时的[[Value]]值是'minRed'
}
Object.defineProperty(obj,'name',{
        configurable:false,
        enumerable:false,
        writable:false,
        value:'holle'
})

数据属性特性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]](JavaScript不能直接访问他们,用[[]]来表示他们是内部值)。
configurable:true/false,是否可以通过delete删除属性,能否修改属性的特性,能否把属性修改为访问器属性,默认true;
enumerable:true/false,是否可以通过for in循环枚举,默认true;
writable:true/false,是否可以修改属性的值,默认true;
value:undefined,设置属性的值,默认undefined。
要修改属性的特性可以用Object.defineProperty(),三个参数属性所在的对象、属性名、描述符,描述符必须是四个特性中的一个或多个。

访问器属性
上一篇下一篇

猜你喜欢

热点阅读