当前位置: 首页 > news >正文

JavaScript 设计模式之外观模式

外观模式

我们为啥要使用外观模式呢,其实我们在使用各种 js 库的时候常常会看到很多的外观者模式,也正是这些库的大量使用,所以使得兼容性更广泛,通过外观者模式来封装多个功能,简化底层操作方法


const A = {g: function (id) {return document.querySelector(`#${id}`)},css: function (id, key, value) {this.g(id).style[key] = valuereturn this},attr: function (id, key, value) {this.g(id)[key] = valuereturn this},html: function (id, html) {this.g(id).innerHTML = htmlreturn this}
}A.css('box','background','red') // 为 id 为 box 的 盒子设置 background 样式属性为 red

数据适配

在我们写方法时,通常会传递参数的形式来传递数据

function fun(arg1,arg2,arg3,...){// todo:
}

但是我们更应该这样来写

function fun(opts = {}) {const {a,b,c} = opts// opts.xx// todo:
}

使用一个对象来接受一些多个参数,使用时进行结构等方式读取数据,这样就避免了多个参数导致数据传递错误问题了,其实在很多的框架中也常常看到这种,比如 Vue 中 

import { createApp, ref } from 'vue'createApp({setup() {return {count: ref(0)}}
}).mount('#app')

这 createApp 方法就单单只是传递一个对象来作为一个参数,而不是一二三个参数

比如 jQuery 中

$.ajax({url: 'xx',method: 'get',dataType: 'json',success: function (data) {// todo:}
})

这种例子也是非常的多,这样的好处就是方便后期扩展,对于后期堆加参数更有利。

http://www.lryc.cn/news/298758.html

相关文章:

  • 一、基础数据结构——2.队列——3.双端队列和单调队列2
  • Stable Diffusion 模型下载:Samaritan 3d Cartoon(撒玛利亚人 3d 卡通)
  • 【软件工程导论】实验二——编制数据字典(数字化校园系统案例分析)
  • 耳机壳UV树脂制作私模定制耳塞适合什么样的人使用呢?
  • 第三百一十回
  • 海量数据处理商用短链接生成器平台 - 4
  • 基于CNN+LSTM深度学习网络的时间序列预测matlab仿真
  • 如何控制系统安全 或 控制流氓软件
  • 【Docker】Docker Container(容器)
  • Amazon CodeWhisperer 免费 AI 代码生成助手体验分享
  • Spring Cloud Gateway 网关路由
  • 【Spring学习】Spring Data Redis:RedisTemplate、Repository、Cache注解
  • C语言:内存函数
  • Go+:一种简单而强大的编程语言
  • 【开源】SpringBoot框架开发数字化社区网格管理系统
  • Lua可变参数函数
  • Nginx实战:3-日志按天分割
  • springmvc中的数据提交方式
  • unity2017 遇到visual studio 2017(社区版) 30日试用期到了
  • Netty应用(六) 之 异步 Channel
  • STM32CubeMx+MATLAB Simulink串口输出实验,UART/USART串口测试实验
  • 【51单片机】串口通信实验(包括波特率如何计算)
  • Kafka零拷贝技术与传统数据复制次数比较
  • npm ERR! network This is a problem related to network connectivity.
  • 【SQL高频基础题】619.只出现一次的最大数字
  • STM32F1 - GPIO外设
  • 新增同步管理、操作日志模块,支持公共链接分享,DataEase开源数据可视化分析平台v2.3.0发布
  • 跟着pink老师前端入门教程-day19
  • ChatGPT学习第一周
  • 爬爬爬——今天是浏览器窗口切换和给所选人打钩(自动化)