封装DOM

手写一个JQuery
DOM是JS里面最常用的一个接口,会DOM就会网页上任何一个操作

1.什么叫封装?
相当于把一个复杂的东西打包成一个服务或者是盒子,只需要用一些简单的命令就可以操作它

1.1举例

  • 电脑笔记本就是 CPU、内存、硬盘、主板、显卡 的封装(或者手机也是)
  • 用户只需要接触显示器、键盘、鼠标、触控板等设备
  • 即可操作复杂的计算机

1.2接口

  • 被封装的东西需要暴露一些功能给外部
  • 这些功能就是接口,比如 USB接口、HDMI接口
  • 设备只要支持这些接口,即可与被封装的东西通讯
  • 比如 键盘、鼠标支持USB接口
  • 显示器支持HDMI接口

    1.3 我的库
    封装出一些接口,这些接口是用来操作页面的节点

    2.术语

  • 我们把提供给其他人用的工具代码(很多函数)叫做库
    编程的库:把一些好用的函数放到一个地方
    比如:JQuery、Underscore
  • API
    库暴露出来的函数或者属性叫做API(应用编程接口)
  • 框架
    当你的库变得很大,并且需要学习才能看懂
    那么这个库就叫做框架,比如 Vue/React(也是库,但它们很大)
  • 注意
    编程界的属于大部分都很随便,没有固定的解释
    所以意会即可

用两种风格封装DOM操作

一、对象风格

  • 也叫命名空间风格
    window.dom 是我们提供的全局对象
  • 然后在dom上挂很多的函数

6-3 JS编程接口(手写DOM库)相关推荐

  1. 【学习笔记】Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程、手写 Promise(二、JavaScript 异步编程)

    [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程.手写 Promise(课前准备) [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步 ...

  2. JS 面试问题: 手写 new

    JS 面试问题: 手写 new

  3. promise 浏览器实现的源码_【大前端01-01】函数式编程与JS异步编程、手写Promise...

    [简答题]一.谈谈你是如何理解JS异步编程的,EventLoop.消息队列都是做什么的,什么是宏任务.什么是微任务? 如何理解JS异步编程 众所周知JavaScript语言执行环境是"单线程 ...

  4. 计算机毕业设计中用python神经网络编程实现手写数字识别

    本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下 import numpyimport scipy.special#import matplotlib.pyplot ...

  5. python手写数字识别实验报告_python神经网络编程实现手写数字识别

    本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下 import numpy import scipy.special #import matplotlib.pypl ...

  6. 小白玩机器学习(6)--- 基于Tensorflow.js的在线手写数字识别

    一.题目要求 1.三个js文件,分别完成:网络训练以及模型保存.模型加载及准确率测试.在线手写数字识别: 2.模型测试准确率要高于99.3%(尽量): 3.在线手写数字识别需要能够通过鼠标在画布中写入 ...

  7. Python神经网络编程:手写数字的数据集MNIST

    识别人的笔迹这个问题相对复杂,也非常模糊,因此这是一种检验人工智能的理想挑战.这不像进行大量数字相乘那样明确清晰. 让计算机准确区分图像中包含的内容,有时也称之为图像识别问题.科学家对这个问题进行了几 ...

  8. matlab 对mnist手写数字数据集进行判决分析_Python神经网络编程:手写数字的数据集MNIST...

    识别人的笔迹这个问题相对复杂,也非常模糊,因此这是一种检验人工智能的理想挑战.这不像进行大量数字相乘那样明确清晰. 让计算机准确区分图像中包含的内容,有时也称之为图像识别问题.科学家对这个问题进行了几 ...

  9. 【零基础】从零开始学神经网络《python神经网络编程》——手写数字识别实战

    文章目录 前言 一.机器学习是什么,深度学习是什么? 二.对NN,CNN,RNN,GNN,GAN的名词解释 三.详细介绍神经网络(NN) 1.认识神经网络 2.神经元 3.激活函数 4.权重--连接的 ...

最新文章

  1. 用Transformer实现OCR字符识别!
  2. halcon算子盘点:Chapter 17:Tools
  3. 各种神经网络优化算法:从梯度下降到Adam方法
  4. phpbreak跳出几层循环_PHP跳出循环之“break”
  5. 【Python】处理 from sklearn.externals import joblib 报错问题
  6. 不得不赞!京东开源FaceX-Zoo,一站式人脸识别研究平台
  7. 白帽子黑客必备的端口知识
  8. 技术人生系列——vCenter重启大法不香了?
  9. 解决url中特殊字符截断参数的问题
  10. 李宏毅机器学习课程---1、机器学习介绍
  11. Photoshop制作印章效果
  12. 基因重组-冲刺日志(第八天)
  13. 用欧拉公式推导三角函数所有公式包括 倍角公式-半角公式-和差化积-积化和差...
  14. java计算机毕业设计springboot+vue青少年编程在线考试系统
  15. 01-JAVA基础—>赏金任务—>三色球问题
  16. 敏捷物联——引领生产和服务创新
  17. devc++ value of xxx too large for field of 4 bytes at xxx 并且源文件未编译
  18. $nextTick 是干什么的
  19. C++ 语言禁止派生类 - final specifier
  20. resize用法matlab,opencv的resize和matlab的imresize函数的计算

热门文章

  1. Linux服务器集群系统(三)——LVS集群中的IP负载均衡技术
  2. torch DQN算法
  3. 《天才引导的历程》| 西安交通大学送给准大一新生的礼物
  4. matlab频率和幅值图,请教!傅里叶变换频率和幅值对不上!
  5. MacOS(苹果电脑苹果系统)连接京瓷300i 打印机
  6. 求N³(n的三次方)的另类算法
  7. mysql 高可用架构 mha 之五 Undefined subroutine main::FIXME_xxx called at power_manage
  8. 会的多和会的精,你会选哪个
  9. [JS]div根据其中内容自适应宽度和高度
  10. PLC系统中的5个技术指标