js--面向对象

1.ECMAScript-262中的对象

无序属性的集合,其属性可以包含基本值、对象、或者函数

2.属性类型

2.1数据属性:包含一个数据值的位置,在这个位置可以写入或者读取值

特性:

1)Configurable:表示能否通过delete删除属性重新定义属性,能否把属性修改为访问器属性,默认为true;

2)Enumberable:表示能否用for-in循环返回属性,默认为true

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

4)Value:包含属性的数据值,默认为undefined

2.2访问属性

不包含数据值,包含一对getter和setter函数

特性:

1)Configurable:表示能否通过delete删除属性重新定义属性,能否把属性修改为访问器属性,默认为true;

2)Enumberable:表示能否用for-in循环返回属性,默认为true

3)Get:在读取属性时调用,默认undefined

4)Set:在设置属性的时调用,默认为undefined

3.创建对象的几种方式

3.1工厂模式

用函数来封装以特定接口创建对象,在函数内创建一个Object对象,在对象上添加传入的属性,然后将这个对象返回出去

3.2构造函数模式

构造函数也是函数,虽然习惯上要将函数名首字母大写,主要是为了区别普通函数。构造函数与普通函数的最大区别在于创建时必须使用new,如果不使用new操作符根普通函数没有区别,在使用new操作符时会经历以下步骤:

1)创建一个新对象 2)将构造函数的作用域赋给新对象 3)执行构造函数中的代码 4)返回新对象

3.3原型模式

创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,用途是包含可以由特定类型实例共享的属性和方法,原型的属性constructor指向构造函数

3.4使用字面量

3.5组合使用原型和构造函数

将实例的特有的属性定义在构造函数中,将实例的方法和共享属性定义在原型上

3.6动态原型模式

通过检查某个应该存放的方法是否有效,来决定是否需要初始化原型

3.7寄生构造函数模式

创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后返回新创建对象,与工程模式的区别,工厂模式之间调用函数创建对象,而寄生构造函数则需要使用new操作符

3.8稳妥构造函数

所谓稳妥对象,指没有公共属性,其方法也不引用this的对象

稳妥构造函数与寄生构造函数基本相似,主要有两点不同:

创建对象的实例不用this,不用new操作符调用构造函数

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值