我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

梁洁-20221107-js第七天

[复制链接]
梁杰,你好 发表于 2022-11-7 23:43:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
设计模式
什么是设计模式
程序员针对特定的问题,给出简洁而优化的处理方案。
常用的模式:
单例模式:
只允许存在一个实例的模式
组合模式:
把若干个启动方案一样的构造函数放在一起,准备以一个总开关,总开关一开启,那么这些构造函数都启动。
观察者模式;
又被称为发布订阅者模式(监听者模式)
代理模式:
proxy,伟大他对象提供一种代理用来控制这个对象的访问,为了不暴露执行对象的部分代码
工厂模式“
工厂函数就是一个对象的创建的封装并将创建对象return出去。
策略模式:定义一系列算法,把他们一个个封装起来,并且使他们可以互相替换,从而避免很多的if语句

工厂模式;
简单的工厂模式:
解决多个相似问题:提示框
复杂的工厂模式:将其成员对象的实例化推迟到子类中,子类可以重写父类接口方法,以便创建的时候指定自己的对象类型,各种的UI组件,根据你想要的类型不同,比如按钮,提示框,表格等等
抽象的工厂模式:
实现子类继承父类的方法,他只是一个方法,抽象的工厂模式一般用在多人协作的超大型项目中,并且严格的要求项目以面向对象的思想完成。
抽象类:声明但是不能使用的类,使用的时候就会报错。

  建造者模式:
一个建造者使用不同的工具堆砌成的一种模式

单例模式:
特点:
一个类或者一个构造函数只有一个实例,并且提工可以全局访问点。全局对象就是简单的单例模式。

原型模式:
一种创建对象的模式,通过一个对象作为原型来创建新的对象。

观察者模式、数据访问对象模式、mvc模式
观察者模式:订阅发布者模式,一个元素同时监听多个类型的时间,元素对象为发布者,每一个事件处理函数(执行的操作)为订阅者。
数据对象访问模式:抽象和封装对数据源的访问和存储。
mvc模式:
mvc是一种架构模式,将我们的应用抽象的分为三个部分,模型(数据)、视图、控制器(发布器)。
时间的发生过程(通信的单向流动):
1、用户在视图(view)上与应用程序交互
2、控制器c(control)出发时间,要求模型改变状态(读取数据)
3、模型m将将数据发动到视图v,更新数据,展示给用户

在js传统开发模式中,大多是基于事件驱动的。
1、hash驱动
2、dom事件
3、模型事件

js中mvc 的特点:
单向流动
事件驱动

前端的控制器模式、拦截过滤模式
前端控制器模式:
他是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序来处理,该程序可以左认证,授权,记录日志或者跟踪请求,然后把请求传递给相应的处理程序。
前端控制器就是处理应用程序所有请求的单个处理程序,应用程序可以是基于web 的应用程序,也可以是基于桌面的应用程序。

调度器:前端控制器可能使用一个调度器对象来调度请求相应的处理处理程序。
视图:视图是为请求二创建的对象。
优点:统一管理,统一调度,将请求统一拦截和记录。
缺点:转发器故障将引发整个系统瘫痪。
前端控制器模式可以做什么?
将用户的请求统一进行管理,然后进行转发,通过转发获得指定的资源,并且通过这个控制起来进行日志的记录,权限的鉴定,是我们的系统有一个统一的入口。
拦截过滤器模式:
主要针对应用程序的请求或者相应做一些预处理/后处理,定义过滤器,并且在把请求传递给传递给目标应用程序之前用用在请求上,过滤器:认证/授权/记录。
传输对象模式
主要用于客户端像我们的服务器一次传递带有多个属性的数据,传输对象也被称为数值对象,
日志/跟踪请求,然后传递给处理程序。
传输对象是一个具有getter/setter方法的简单类,是可以序列化的,所以他是通过网络来传输的。


dom和bom概述、api和webapi 的概念
bom:浏览器对象模型,使我们的javascript有能力和浏览器进行对话。
bom提供了访问浏览器各种功能部件的途径,浏览器窗口本身、浏览器的历史。

dom:文档对象模型使我们的程序和脚本能够动态的访问和更新文档的内容、结构、样式,并且独立于平台和语言的接口。

w3c 为dom提供了一套html和xml文档的标准对象,以及访问这些文旦的标准接口(方法)。

dom和bom是独立于我们的程序语言和平台的标准,都是由一组对象组成的,对象中对已了属性和方法

API:给程序员提供的一种工具,一边可以更加轻松的实现某种功能
webAPI:是浏览器提供的一套浏览器功能和页面元素的API,一般都是函数和方法。
dom---
节点:由我们的结构图,也就是dom树,整个文档就是一个文档节点,document,每个html标签就是一个元素节点,element
标签中的文字就是文本节点(空格回车也是文本节点)。text
标签的属性也是属性节点,attribute
一切都是节点,node
获取标签对象的主要方法 :
获取html元素
html4来获取节点
doucument.getElementsByTagName();  获得集合
document.getElementsByClassName();获得集合
document.getElementById();id 的唯一性
document.getElementsByName();获得集合
html5获取元素:
document.querySelector("#id");
document.querySelector("tagname");
返回符合要求的第一个元素
document.querySelector(".class");


document.querySelectorAll();
返回的是数组
dom:


控制标签的内容:
...文本内容
。innerText=“”;
.innerHTML="";
.textContent="";

innerText=“”和textContent=“”(推荐使用)都不能解析html标签,可以添加文本内容
innerHTML可以解析标签,也可以添加文本内容
属性值
inpt。value

操作style样式


节点.style.backgroundColor=""

class  节点.className=""

事件
鼠标事件
键盘事件
事件三要素
事件源:谁来触发
事件类型:什么事件?鼠标或者键盘
事件处理函数:出发后需要进行什么行为
事件对象:事件发生时的相关信息都保存到事件对象中

回复

使用道具 举报

关注0

粉丝0

帖子77

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026