面向对象
单例模式
最开始JS语言并没有引用数据类型,只有基本数据类型。会产生全局变量污染(冲突)问题 代码的可扩展性 在我们需要操作一个的name和age的时候,我们并不知道之后会不会还有其它的人需要加入进来,如果我们直接用name和age变量,之后会很难维护 所以我们可以用一个对象将其封装起来
模块化开发
百度首页
我们分成以下几个模块 一般我们一个文件就是一个模块 主页面模块 入口文件(index) 搜索设置模块 searchModel 天气模块 wearthModel
var searchModel = {}// 这两个可能是在不同的文件var wearthModel = {}复制代码
对象是将描述同一事物的属性和方法合并,这也是单例模式的使用 将函数的参数以一个对象的形式传递,也是使用了单例模式的思想
高级单例模式
高级单例模式就是融合了其他设计模式(发布订阅模式,promise) 去写的代码 如下就是单例模式和闭包思想的融合,就是高级单例模式
function fn1() {return {}}var data = fn1()复制代码
工厂模式
就是将实现某一项功能的代码封装成一个函数,下次再需要实现这个功能的售后调用这个函数即可
高内聚低耦合
减少页面不必要代码,提高代码利用率
面向对象
面向过程 C 面向对象 java php c++ JavaScript
对象 类 实例
万物皆对象,我们研究的所有东西都是对象 类 对象的具体划分 比如说 马类 人类 植物类 实例 某一类中的具体实物 人中的你我他
JS中的内置类
- Number
- String
- Boolean
- Null
- Undefined
- Object
- Array
- RegExp
- Date
- Function
元素集合类
- NodeList
Null 和 Undefined 浏览器禁止我们操作 document
基于面向对象创建数据类型
面向对象创建引用数据类
使用面向对象的方式创建数组 当参数多于1的时候,和字面量方式没有区别 但是只有一个参数的时候面向对象方式创建的数组结果就是长度为参数,然后每个值都是空
原型
每一个函数(类)都有一个prototype属性,存储的是给当前类使用的共有的属性和方法。prototype是一个对象,浏览器默认给他开辟堆内存 每一个prototype都有一个默认属性constructor指向类本身 每一个实例(对象),都有一个__proto__属性,指向所属类的原型