标签:高内聚低耦合 面向过程 port render 数据类型 const ant ffffff 实战
一、拥抱面向对象
1、JavaScript是一门编程语言(具备编程思想)
2、对象、类、实例的概念
3、编程目标:
高内聚低耦合
4、面对对象:
继承、封装、多态
整个JavaScript就是基于面向对象设计和开发出来的语言,我们学习和实战的时候也要按照面向对象的思想去体会和理解
二、单例设计模式(Singleton Pattern)
1.表现形式 :
在单例设计模型中,object不仅仅是对象名,它被称为“命名空间【NameSpace】,把描述事务的属性存放到命名空间中,多个命名空间是独立分开的,互不冲突
var obj = { xxx:xxx, ... }
2.作用:
把描述同一件事务的属性和特征进行‘分组、分类’(储存在同一个堆内存空间中),因此避免了全局变量之间的冲突和污染
3.命名由来:
每一个命名空间都是JS中Object这个内置基类的实例,而实例之间是相互独立互不干扰的,所以我们称它为“单例:单独的实例”
4.高级单例模式
// 高级单例模式
var nameSpace = (function(){ var n = 12; function(){ //... } return { fn:fn } })();
5.模块化开发
//=>赶尸人 var skipRender = (function () { var fn = function () { //... }; //... return{ init:function(){}, fn:fn } })(); skiperRender.init(); //=>蚩梦 var weatherRender = (function () { var fn = function () { //... }; //... return{ init:function(){ fn();//=>调取自己模块中的方法;直接调取执行即可; skiperRender.fn();//=>调取别人模块中的方法 } } })(); weatherRender.init();
三、工厂模式(factory pattern)
1.把实现相同功能的代码进行“封装”,以此来实现“批量生产”(后期想要实现这个功能,我们只需要执行函数即可)
2.“低耦合高内聚”:减少页面中的冗余代码,提高代码的重复使用率
function createPerson(name,age) { var obj = {}; obj.name = name; obj.age =age; return obj; } var p1 = createPerson("不良人",18); var p2 = createPerson("赶尸人",18);
四、构造函数模式
1.基于构造函数创建自定义类constructor
function Fn { } var f = new Fn();//=>Fn是类 // f是Fn这个类的一个实例 var f2 = new Fn();//=>f2也是Fn的一个实例,f2和f是独立分开的,互不影响 console.log(f);
2.JavaScript中创建值有两种方式
不管是哪一种方式创造出来的都是Object类的实例,而实例之间是独立分开的,所以`var xxx={}`这种模式就是js中的单例模式
基本数据类型基于两种不同的模式创建出来的值是不一样的
var num1 = 12.786; var num2 = new Number(12); console.log(typeof num1);//=>number console.log(typeof num2);//=>object
3.构造函数的机制
(1)普通函数执行
(2)构造函数执行
function Fn(name,age) { var n = 10; this.name = name; this.age = age + n; }
4.构造函数的细节知识点
(1)关于return
构造函数执行,不写return,浏览器会默认返回创建的实例,但是如果我们自己写了return
构造函数执行的时候,尽量减少return的使用,防止覆盖实例
(2)构造函数执行的时候,如果Fn不需要传递实参,我们可以省略小括号,意思还是创建实例(和加小括号没有区别)
var f = new Fn();//=>new Fn
标签:高内聚低耦合 面向过程 port render 数据类型 const ant ffffff 实战
原文地址:https://www.cnblogs.com/qingtiao/p/10295598.html