首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS设计模式之备忘录模式

源码 点击这里前往Github获取本文源码 意图 在不破坏封装性前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存状态。...——《设计模式:可复用面向对象软件基础》中文版第212页 这个常常被运用于游戏存档、操作撤销等场景。 示例 这是一个悲催故事,内容是一个人先涨薪然后通过本文提到功能恢复了原来薪水。...staff.salary) // 17500 staff.restore(careTaker.get(1)) console.log(staff.salary) // 12500 Memento指的是存储下来数据...Originator,即本文Staff,是一个可以保存状态并恢复状态对象。 基本模型就是上面三个。 参考 设计模式:可复用面向对象软件基础 JavaScript Memento

42910

绕过JS爬虫

http://data.eastmoney.com/jgdy/tj.html       我们希望抓取js生成表格。      ...这种带有js网站抓取其实不是那么简单,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取...今天我们使用是第三种。 ?       我们希望爬取是表格中数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成,下面这张图是源代码截图。 ?      ...然后我们就点击第二页、第三页不断来观察究竟js代码访问了什么后台url。...接下来我们就可以用urllib来获得api背后json内容了,比如是这样: ?

14.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

js插件教程

;我为了方便都写到一个html中了;请把这个script标签中内容单独写在一个js文件里 //整个插件写在一个立即执行函数里;就是function(){}();函数自执行;保证里面的变量不会与外界互相影响...; //最后面的undefined可不;最好写了;保证里面再出现undefined是未定义意思;不被其他东西赋值; //好了下面是时候展现真正技术了 //function前!...号(叹号)或者;(分号)这不是写错了,为了防止那个二货js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...this.num = 0;//你也可以一些其他默认东西;比如默认变量啦;方便下面调用;这里写了什么都不会报错;只是有用没用问题这行可以忽略 this.author...} //;给构造函数addHtml对象原型里添加属性(方法) addHtml.prototype = {//给函数方法;这里可能不止一个函数;你还记得你在全局里一个个function

35.1K10

js】如何正确代码注释?

错误注释 你注释是不是这样? //时间戳日期格式化函数 function formTime(time,isyear){ } 亦或者是这样?.../* 时间戳日期格式化函数 */ function formTime(time,isyear){ } 简单变量声明之类内容可以进行简单注释,但是函数就不能这样做了,要知道注释作用是一种为了让代码更易读...、易维护、易理解,起到提示作用,上面的两个注释都是正确,但是它起到作用太低了,在正式工作中我们往往会协同开发,这种注释是万万不可。...,内容详细了很多,当然,不只是单单内容多了,如果只是内容多了那么/* */段落注释同样也可以,那么它还有什么优点呢?...npm install jsdoc -g 基本使用 jsdoc 文件名 其他使用方式可以去官网查看 jsdoc 33.js 执行完此命令,会生成一个out文件夹,查看里面的index页面即可,右边侧边栏会显示函数使用

15320

js插件教程深入

原文地址:https://github.com/lianxiaozhuang/blog 转载请注明出处 js 插件教程深入 1.介绍具有安全作用域构造函数 function Fn(name...就是一个构造函数 //倘若有人忘记new,直接调用Fn();此时var p = Fn();可见实例p没有getF方法; //为了解决这种问题;引入了安全作用域构造函数概念 function Fn...,getC到底写到this里还是原型里 //这要从内存说起;写到原型上,每执行一个实例,getC不需要开辟新内存 //故,可以把一些纯计算方法,原型上,如果方法和实例本身有关,应该写道this中...4.方法名防止冲突处理 //如果在引入你插件之前,window下已经有Fn变量;怎么办,你如果这么搞; 岂不是把别人Fn搞掉了 //此时应该把Fn控制权交出,自己用Fn2输出 (function...var MyPlugin = function(options) { this.name = name; this.init(); }; //覆原型链

13.8K10

Js可以桌面应用端?

1、下载nw.js https://nwjs.io/ 最好下载sdk版本。 2、解压打开安装包 下载完之后,解压打开 图中「app文件夹」是我自己创建,你也需要自己创建一个,里面放你项目文件。...代表app入口文件,我们这里用是index.html,就是当app启动时候第一个页面是什么。...frame:是否使用边框,也就是含有最小化,关闭等按钮边框。 resizable:是否可以调整窗口大小。 icon:窗口图标,也是在快速启动栏显示图标。...然后将app文件夹下所有文件项目文件压缩成app.zip压缩文件,将其更改为app.nw文件。...下载链接打开它,选中「app.exe」然后将你刚才下好nw.js里原始文件(除去你自己生成和创建文件或文件夹)。

12.9K10

「 giao-js 」用js一个js解释器

前言 在这篇文章中,我们将通过 JS 构建我们自己 JS 解释器,用 JS JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作!...一个完全使用 javascript 实现,小型且快速 javascript 解析器 本次实践我们将使用 acorn.js ,它会帮我们进行词法分析,语法解析并转换为抽象语法树。...Webpack/Rollup/Babel(@babel/parser) 等第三方库也是使用 acorn.js 作为自己 Parser 基础库。(站在巨人肩膀上啊!)...acorn.js parse 返回值符合 ESTree spec 描述 AST 对象,这里我们使用@types/estree 做类型定义。...: Expression | null; } Identifier 顾名思义,标识符节点,我们 JS 时定义变量名,函数名,属性名,都归为标识符。

46.4K20

设计模式之备忘录模式(Memento模式)引入备忘录模式备忘录模式实例备忘录模式分析

引入备忘录模式 备忘录模式实例 备忘录模式分析 引入备忘录模式 我们在使用文本编辑器时候,一般如果不小心误操作了,按ctrl+z就可以恢复之前状态,撤销(undo)操作。...所以,备忘录模式,就引入一个专门表示实例状态角色,可以在保存和恢复实例时候有效防止对象封装性遭到破坏。...备忘录模式实例 我们实现一个实例,可以保存实例某个时间点状态,并且恢复。 ?...备忘录模式分析 备忘录模式角色: Originator生成者 生成者会在保存自己状态时候,new一个新menmeto角色 当需要恢复时候,只需要把以前menmeto传给生成者,他就会将自己恢复至...备忘录模式类图 ? image.png

39520

js不重要,重要是要有“分析问题”思考方式

今天早上在开始讲零基础课时候,我看了一眼旁边桌上书,就跟我学生们聊了一会,看书必要性。有些前端和互联网方面的书,确实是垃圾,但也要看看,为啥呢?因为面试时候,你没法保证每一句话都是干货。...就是大致翻看一下,然后在脑子里有个印像也就算了。 js这东西,其实并不能每个人都像我一样,在JS中找到乐趣,就乐意这东西直到50岁眼瞎为止。...那肯定有人要问,也许我不仅JS不到35,可能我连3、5年时间都不到。那我学JS意义在哪里呢?直白讲,也就是挣点钱儿。...要知道总有些事情是你必须要办,而且很可能它们紧急程度是一样,那你该怎么办呢? 或者你可以像你在JS时候那样,把相同事情分类,然后sort()排序,然后把这些事情分解,按照相关度重新组合。...而这种思考方式,我觉得通过JS会是一种很好练习方式。确实也是因为我只会JS

1K60

居然可以用 js PPT?

居然可以用 js PPT 用powerpoint或者keynote演示文稿,对于代码、数学公式等支持一直是个痛点。而且对于前端同学来说,一身css功力用不上也是个痛点。...在我们上面默认html模板中已经加载了RevealMarkdown插件。所以我们要做就是在下面的模板上markdown就好。...我们先把数学公式库js引进来: 然后在初始化时Reveal.initialize增加对于数学公式配置,并且引入...而且也可以跟reveal.js功能有更好结合。...更进一步 除了上面介绍基本特性之外,reveal.js支持自动播放、自制插件、支持处理事件等等有利于开发人员slides特性。相信能给你slides带来新好玩东西,将汇报与分享变成乐趣。

9.4K20

从零开始项目第五篇【评论功能、备忘录

评论功能资料 在网页上评论功能并不少见,我也想在自己网站中增加评论功能,好让知道别人对我网站看法,还能让别人提醒我哪里出错了。 于是我就去寻找对应资料去了,之前对评论功能并没有了解过…....【稍微复杂,一个评论可以对应多个回复】 实现评论与回复“盖楼”方式,这种就是网易评论【具体可看下面的博文,此种是最复杂】 这位博主给出了相关设计数据库过程,我觉得非常好,受益良多 而这位博主就是针对上面所说第一种情况做评论功能...(对我来说还是有点难)… 个人备忘录编写 之前就想做个人备忘录这个功能了,本来是想用“手机短信”方式来提示用户设置了备忘录。...就直接使用邮箱了(因为我账户体系本来就是用邮箱) 既然是用户设置时间、发邮件提示,那么我第一时间想到是Quartz任务定时调度框架… 后来,觉得当前Quartz知识不足够我去这么一个功能,于是就去找资料重新学了一下...Quartz触发器时间..不过没有用到那个技术..

72380

JS分号嘛? - wuuconixs blog

ASI 在JS之前,我一直在Python,习惯了没有分号代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...这让我们在大部分情况下都不用分号,非常优雅。 然而ASI在某些情况下将产生错误。 ASI发生错误情况 IIFE 立即调用函数表达式 考虑以下代码。...> node 1.js /root/1.js:2 (function log() { ^ TypeError: 1 is not a function 提示显示1不是一个函数,看来引擎把代码理解成了这个样子...> node 1.js a: 4 b: 3 c: 3 d: 4 js把中间两个swap看成了 [a, b] = [b, a][c, d] = [d, c] 仍然是一个连等,我们需要从右往左看,首先是...所以[2, 1][3, 4]可以为[1, 2][4],所以最后值是undefined。

1.1K20

用原生js一个多动症简历

用原生js一个"多动症"简历 预览地址 源码地址 最近在知乎上看到@方应杭用vue写了一个会动简历,觉得挺好玩,研究一下其实现思路,决定试试用原生js来实现。...原理分两个部分 页面能看见不断跳动着增加文字,控制 页面的布局效果由藏在"背后"style标签完成 想象一下你要往一张网页每间隔0.1秒增加一个啊字,是不是开个定时器,间断地往body里面塞啊,...使用es6写法 使用部分原生dom操作api standard.js(代码风格约束利器) 目录结构如下 最重要几个模块分别是resumeEditor(简历编辑模块) 、 stylesEditor(...简历样式编辑模块) 、 以及vQuery(封装dom操作模块) 最后app.js(入口模块)再将几个模块功能结合起来完成整个项目。...,你没看错,传说中回调地狱,亮瞎了我狗眼啊。想必大家和我一样都是不愿意看到这坨恶心代码,但对于处理异步问题,回调又的确是一直以来解决方案之一。

6.8K70
领券