JavaScript设计模式总结

面向对象


  1. 什么是面向对象的程序
  2. 面向对象的三大特点:封装,继承,多态(抽象,继承,重用)
  3. 避免全局变量的创建
  4. 函数式编程、类式编程(面向对象编程)
  5. 私有属性,私有方法,公有属性,公有方法,保护方法,特权方法,类的静态公有属性,类的静态公有方法,公有属性,公有方法,构造函数
  6. 闭包
  7. 封装
  8. 继承(声明式继承,构造器继承)
  9. 类,对象,实例概念理解和它们之间的区别

ECAMScript中有两种属性:数据属性和访问器属性
1. 数据属性包含一个数据值的位置,有四个描述其属性的特性:[[Configurable]],[[Enumerable]],[[Writable]],[[Value]]
要修改这些属性的默认特性,必须使用ECMAScript5中的,Object.defineProperty()方法。这个方法接收三个参数:属性所在的对象,属性的名字,和一个描述符对象,其中,描述符对象的属性必须是:configurable,enumerable,writable和value,可以设置其中的一个或多个,修改属性对应的特性值。如果不指定,默认都为false。以字面量形式,设置对象的属性时,这些属性的特性默认都为true。一旦将configurable特性设置为false,就不能再设置为true了。
eg:
var person = {};
Object.defineProperty(person,name,{
writable:false,
value:’Nicholas’
});
2. 访问器属性: ,有四个描述其属性的特性:[[Configurable]],[[Enumerable]],[[Get]],[[Set]]
访问器属性不能直接定义,必须使用Object.defineProperty();
eg:
var book = {
_year:2004,
edition:1
}
Object.defineProperty(book,’year’,{
get:function(){
return this._year;
},
set:function(){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue -2004;
}
}
});
book.year = 2005;
console.log(book.edition);
定义多个属性:
var book = {};
>Object.defineProperties(book,{
> _year:{value:2003},
> edition:{get:function(){}}
>})
> var descriptor = Object.getOwnPropertyDescriptor(book,'_year');
>console.log(descriptor.value);
>

读取属性的特性:Object.getOwnPropertyDescriptor()方法
在JavaScript中,可以针对任何对象—包括DOM和BOM对象,使用Object.getOwnPropertyDescriptor()方法。

JavaScript设计模式

(一)创建性设计模式

  1. 简单工厂模式(工厂函数/静态工厂方法)
  2. 工厂方法模式(安全模式类)
  3. 抽象工厂模式
  4. 建造者模式(注重创建过程,工厂方法注重创建结果)
  5. 原型模式
  6. 单例模式(单体模式/惰性单体模式)

未完成,待续……

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值