设计模式
总结编程的设计模式
大小小丹
欲将得之,必先与之!凡事尽力而为,随心而行,余下随缘~
展开
-
this的指向
分4种:作为对象的方法调用 作为普通函数调用 构造器调用 Function.prototype.call或Function.prototype.apply调用1、作为对象的方法调用当函数作为对象的方法被调用时,this 指向该对象:var obj = { a: 1, getA: function(){ alert ( this === obj ); // 输出:true alert ( this.a ); // 输出: 1 } }; obj.getA();2、原创 2021-04-26 15:32:38 · 59 阅读 · 0 评论 -
闭包
一、闭包1、变量的作用域:var声明的变量会局限于函数中,如果变量没有会往外层逐层收缩,一直搜索到全局变量为止。2、变量的生存周期:一般变量会随着函数的调用完,退出函数则会销毁,但是函数内还有函数,并给外部调用了,造成闭包,则变量不会销毁来个简单的闭包例子:var func2 = function(){ var a = 1; a++; console.log('1111',a); return function(){ a++; console.log(原创 2021-04-26 16:39:01 · 123 阅读 · 0 评论 -
高阶函数
一、定义:高阶函数是指至少满足一下条件之一:函数可以作为参数被传递 或者 函数可以作为返回值输出。(1)函数作为参数被传递如:回调函数、Array.prototype.sort函数接收一个函数作为参数(2)函数作为返回值输出如:判断数据类型var isString = function( obj ){ return Object.prototype.toString.call( obj ) === '[object String]'; // String、Array、Object原创 2021-04-26 17:14:42 · 93 阅读 · 0 评论 -
javascript - 原型设计模式
讲解原型设计模式之前,先了解原型和原型链的概念。一、原型和原型链1、显式原型与隐式原型显:prototype隐:__proto__两者指向同一个指针地址,因此两者是相等了 Person.prototype === Person.__proto__ // truefunction Person(name){ this.name = name}var person = new Person('zhangsan');var person1 = new Person('lis.原创 2021-04-26 14:27:42 · 89 阅读 · 0 评论 -
js设计模式一 - 单例模式
单例模式是一种简单但非常实用的模式,特别是惰性单例技术,在合适的时候才创建对象,并且只创建唯一的一个。原创 2022-06-01 21:42:19 · 85 阅读 · 0 评论 -
js设计模式二 - 策略模式
oo面向对象编程的三个特征:封装、继承、多态,但编程中的原则是“封装变化”,“多用组合少用继承”,“针对接口编程,不针对实现编程”下面记一下策略模式。先了解下状态模式。// 旧的不好代码 - 维护麻烦,后期维护需要做删减处理if (state === 'SCHEDULE') { // 预约中} else if(state === 'ONLINE') { // 在线} else if(state === 'OFFLINE') { // 离线} else if(state ===原创 2022-05-31 22:26:36 · 218 阅读 · 0 评论 -
js设计模式三 - 代理模式
代理模式,更好实现功能单一职责的原则,使code更好的拓展和维护,避免高耦合的情况。原创 2022-06-01 23:04:03 · 141 阅读 · 0 评论 -
js设计模式四 - 迭代器模式
迭代器模式,简言之就是数组或者对象遍历。比如for, forEach, for...in..等。目前,恐怕只有在一些“古董级”的语言中才会为实现一个迭代器模式而烦恼,现在流行的大部分语言如 Java、Ruby 等都已经有了内置的迭代器实现,许多浏览器也支持 JavaScript 的Array.prototype.forEach。......原创 2022-06-02 22:55:03 · 147 阅读 · 0 评论 -
js设计模式五 - 发布—订阅模式
发布订阅模式的优点:1.广泛应用于**异步编程**中,这是一种替代传递回调函数的方案。在异步编程中使用发布订阅模式,我们就无需过多关注对象在异步运行期间的内部状态,而只需要订阅感兴趣的事件发生点。例如ZoomSdk的注册以及事件回调都是异步执行的,这时使用发布订阅模式就很好解决这个问题。2.发布订阅模式可以取代对象之间硬编码的通知机制,一个对象不再显式地调用另一个对象的某个接口。发布订阅模式让两个对象松耦合地联系在一起,虽然不太清除批次的细节,但这不影响他们之间互相通讯。当有心得订阅者出现时,发布者的代原创 2022-06-03 16:45:10 · 381 阅读 · 0 评论 -
js设计模式六 - 命令模式
命令模式是最常见的应用场景是,当有需要向某些对象发送请求时,并不需要知道请求的接受者是谁,也不需要知道请求的操作是什么。这时候就希望用一种松耦合的方式来设计程序,使得请求的发送者和接受者消除彼此的耦合关系。...原创 2022-06-12 22:52:04 · 128 阅读 · 0 评论