JavaScript高级程序设计-第六章面向对象的程序设计

创建对象主要的两种形式,创建Object实例和创建对象字面量

对象包含属性和方法

数据

、属性有四个特性,特性是为了描述属性行为的,他们是:

Configurable(可配置的)是否能删除或是否能修改为访问器属性

Enumerable(枚举)是否能够for-in

Writeable(可写)能否修改属性值

Value(值)默认为undefined,从这个位置上读数据或把新值保存到这个位置上

eg:

var person = {}‘;

Object.defineproperty(person,"name",{writeable:false,value:"fff"});//person.name变成只读。

不过要注意使用Object.defineproperty()中的configurable:false后属性就成为不可配置的了,不能使用除writeable以外的其他特性了,也不能通过:true再改回来,

时间: 2024-08-02 11:00:34

JavaScript高级程序设计-第六章面向对象的程序设计的相关文章

读书笔记 - js高级程序设计 - 第六章 面向对象的程序设计

EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value 前三个值的默认值都为false 举例 Object.defineProperty( person, "name", { writable:false, value:"niko"} ) ; 一旦属性定义为不可配置的,就不能再把它变回可配置的了 读取属性 的特性 var descriptor  = Object.ge

JavaScript高级程序设计 第六章 面向对象程序设计

面向对象程序设计 ECMA-262将对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性和方法都有一个名字,而每个名字都映射到一个值. 6.1理解对象 创建对象的最简单方式就是创造一个Object实例,然后再为它添加属性和方法,如下所示: var person = new Object(); person.name = 'yyg'; person.age = 23; person.job = 'student; pe

JavaScript高级程序设计(第三版)第六章 面向对象的程序设计

6.1 理解对象 var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"; person.sayName = function(){ alert(this.name); }; person.sayName(); 6.1.1 属性类型 1.数据属性 [[Configurable]]:表示能否通过delete删除属性从而重

《JavaScript高级程序设计第六章--面向对象》section_03

这一部分主要讲讲有关继承的问题. 6.3  继承 许多面向对象语言比如java都支持两种继承方式:接口继承(只继承方法签名)和实现继承(继承实际的方法):由于函数没有签名,在ECMAScript中只能支持实现继承.实现继承主要依靠原型链. 6.3.1 原型链 基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法. 回顾一下构造函数.原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针. 所以,试想一下,我们让原型对

第六章 面向对象的程序设计 (1 理解对象)

面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象. ECMA-262 把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到一个值.正因为这样,我们可以把ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数. 每个对象都是基于一个引用类型创建的. 6

第六章 面向对象的程序设计 (3 继承)

6.3 继承 许多OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript 中无法实现接口继承.ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链来实现的. 6.3.1 原型链 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.简单回顾一下构造函数.原型和实例的关系:每个构造函数都有一个原型

第六章 面向对象的程序设计 (2 创建对象)

6.2 创建对象 6.2.1 工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.考虑到在ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(thi

第六章-面向对象的程序设计—创建对象

使用对象字面量和或者构造函数都可以创建对象,但是都有缺点:使用同一个借口创建对象,会导致代码重复.为解决这个问题,人们开始使用工厂模式. 1 工厂模式 1 function create(name,age,job){ 2 var o = new Object(); 3 o.name = name; 4 o.age = age; 5 o.sayName = function(){ 6 alert(this.name); 7 } 8 } 9 var person1 = create('XU',27)

第六章-面向对象的程序设计(理解对象)

ESMA把对象定义为:"无序属性的集合,其属性可以包含基本值,对象和函数".严格的讲,这相当于说对象是一组没有特定顺序的值,对象的每个属性或方法都有一个名字,而每一个名字都映射到一个值. 1.理解对象 创建对象有对象字面量的方法,这种方法比较常用,也是比较推荐的. 1 var person ={ 2 name:'xu', 3 age:27, 4 sayName:function(){ 5 alert(this.name); 6 } 7 }; 还有创建对象的实例的方法: 2.属性的类型