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

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

一、理解对象

创建自定义对象通常有两种方法,第一种就是创建一个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(),三个参数属性所在的对象、属性名、描述符,描述符必须是四个特性中的一个或多个。

访问器属性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,848评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 第1章 JavaScript 简介 JavaScript 具备与浏览器窗口及其内容等几乎所有方面交互的能力。 欧洲...
    力气强阅读 4,871评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • 如果一开始就已经注定我们之间是不平凡的,那么我要感谢老天,没有让我在茫茫人海中和你擦肩而过。 就算当时的我...
    Monster莫阅读 1,020评论 0 0