JavaScript设计模式总结

xiaoxiao2021-02-28  66

面向对象

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

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设计模式

(一)创建性设计模式

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

未完成,待续……

转载请注明原文地址: https://www.6miu.com/read-34130.html

最新回复(0)