函数封装

js常用的封装函数

↘锁芯ラ 提交于 2019-12-29 00:40:39
1、使用childNodes获取元素的元素节点 //使用childNodes获取元素节点 function cNodes(obj){ var arr=new Array(); for(var i=0;i<obj.childNodes.length;i++){ if(obj.childNodes[i].nodeType==1){ arr.push(obj.childNodes[i]); }else{ console.log("内层"+i+"不是元素节点"); } } return arr; } 2、getStyle函数 //获取计算后的样式 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; //IE }else{ return getComputedStyle(obj,null)[attr]; } } 来源: https://www.cnblogs.com/dream-w/p/4980869.html

Javascript:常用函数封装

廉价感情. 提交于 2019-12-29 00:39:56
//cookie function setCookie(name, value, iDay) { if(iDay!==false) { var oDate=new Date(); oDate.setDate(oDate.getDate()+iDay); document.cookie=name+'='+value+';expires='+oDate+';path=/'; } else { document.cookie=name+'='+value; } } function getCookie(name) { var arr=document.cookie.split('; '); var i=0; for(i=0;i<arr.length;i++) { var arr2=arr[i].split('='); if(arr2[0]==name) { return arr2[1]; } } return ''; } function removeCookie(name) { setCookie(name, 'a', -1); } //事件 function myAddEvent(obj, ev, fn){ obj.attachEvent?obj.attachEvent('on'+ev, fn):obj.addEventListener(ev, fn, false); }

jQuery源码学习笔记(一)

∥☆過路亽.° 提交于 2019-12-28 23:02:47
今天是学习jQuery的第一天,先明确一下学习目标:通过用自己的思路仿写jQuery库,更好地理解它的底层原理和编程思想。 假设世界上还没有jQuery这样一个库,我们要从哪里开始呢?如果我们现在正在做一件事情,比如说喝水。那么,我们为什么要喝水呢?原因很简单,肯定是在此之前我们感觉到口渴了。也就是说我们产生了一个喝水的需求,而这个需求促使我们去做喝水这件事情。有没有发现,不单单喝水,其实我们大部分的行为都是由需求来驱动的。首先得要有一个需求,在需求的推动下我们才会采取相应的行动试图去满足这个需求。写一个jQuery库也是一样,在行动之前,我们得要先搞清楚写这个库的需求在哪里?也就是说:为什么要写这个库?不然,我们根本不知道从何入手。那么,为什么要写一个jQuery库呢? 我们知道,jQuery本质上就是用javascript代码写成的各种方法的集合。但是javascript本身不是已经提供了各种各样的方法和功能了吗?为什么还要再另外写一个库出来呢?原因其实很好猜,那肯定是我们要写的这个库比javascript提供的原生方法更好用了,对吧?恩,到这里我们似乎得到了一个基本需求:写一个比原生javascript提供的方法集更好用的库。这个需求的关键在于“更好用”三个字。怎么才是“更好用”呢? 我们知道一个原则:结构、表现、行为相分离。javascript是负责其中的“行为”的

0905-广告点击量实时统计

孤街浪徒 提交于 2019-12-28 21:08:41
0905-广告点击量实时统计 需求七:实时维护黑名单 7.1 需求概述 7.2 简要运行流程 7.3 具体运行流程 7.4 代码实现 7.4.1 加载并转换用户数据集 7.4.2 过滤掉已经上黑名单的用户 7.4.3 对实时数据进行统计,更新点击次数表 7.4.4 添加异常用户 需求八:各省各城市广告点击量实时统计 8.1 需求概述 8.2 简要运行流程 8.3 具体运行流程 8.4 代码实现 8.4.1 转换key值 8.4.2 进行聚合 8.4.3 封装case class 并入库 需求九:每天每个省份Top3热门广告 9.1 需求概述 9.2 简要运行流程 9.3 具体运行流程 9.4 代码实现 9.4.1 封装key 9.4.2 聚合 9.4.3 转换格式 9.4.4 创建临时表并执行查询 9.4.5 封装case class并入库 需求十:最近一小时广告点击量实时统计 10.1 需求概述 10.2 简要运行流程 10.3 具体运行流程 10.4 代码实现 10.4.1 封装key 10.4.2 使用窗口操作计算 10.4.4 封装case class并入库 小结 需求七:实时维护黑名单 7.1 需求概述 从Kafka获取实时数据,对每个用户的点击次数进行累加并写入MySQL,当一天之内一个用户对一个广告的点击次数超过100次时,将用户加入黑名单中。 7.2 简要运行流程

JAVA的基础知识(一)

半城伤御伤魂 提交于 2019-12-28 02:47:58
1、对象的概念 Java 是 面向对象的编程语言 ,对象就是 面向对象程序设计的核心 。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念 2、对象的特点 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性 。 对象都是某个类别的实例 。 一切皆为对象,真实世界中的所有事物都可以视为对象。 3、面向对象和面向过程的区别 面向过程:一种较早的编程思想,顾名思义就是 该思想是站着过程的角度思考问题 ,强调的就是 功能行为 ,功能的 执行过程,即先后顺序 ,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。 面向过程的设计: 最小的程序单元是函数 ,每个函数负责完成某一个功能,用于接受输入数据,函数对输入数据进行处理,然后输出结果数据,整个软件系统由一个个的函数组成,其中作为 程序入口的函数称之为主函数 ,主函数依次调用其他函数,普通函数之间可以相互调用,从而实现整个系统功能。 面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。为了解决这一种软件危机,我们提出面向对象思想。 面向过程的缺陷:是 采用指定而下的设计模式 ,在设计阶段就需要考虑每一个模块应该分解成哪些子模块,每一个子模块又细分为更小的子模块,如此类推,直到将模块细化为一个个函数。

day6-2面向对象

时光怂恿深爱的人放手 提交于 2019-12-27 14:54:27
概述: 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面向对象编程也支持函数式编程 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。   类就是一个模板,模板里可以包含多个函数,函数里实现一些功能   对象则是根据模板创建的实例,通过实例对象可以执行类中的函数 class是关键字,表示类 创建对象,类名称后加括号即可 # 创建类 class Foo: def Bar( self ): print 'Bar' def Hello( self , name): print 'i am %s' % name # 根据类Foo创建对象obj obj = Foo() obj.Bar() #执行Bar方法 obj.Hello( 'wupeiqi' ) #执行Hello方法  面向对象:【创建对象】【通过对象执行方法】 函数编程:【执行函数】 面向对象的三大特性是指:封装、继承和多态 。 一、封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。 所以

微信小程序初体验--封装http请求

我只是一个虾纸丫 提交于 2019-12-27 13:47:19
最近看了一下微信小程序,大致翻了一下,发现跟angular很相似的,但是比angular简单的很多具体可参考官方文档 https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/page.html?t=2017112 下面将封装http请求服务部分的服务以及引用部分 // 本服务用于封装请求 // 返回的是一个promisepromise var sendRrquest = function (url, method, data, header) { var promise = new Promise(function (resolve, reject) { wx.request({ url: url, data: data, method: method, header: header, success: resolve, fail: reject }) }); return promise; }; module.exports.sendRrquest = sendRrquest 在utils文件中创建文件requestService.js文件 下边是在page.js文件中引用部分代码 // 界面一般通过使用Page函数注册一个界面,接收一个Object对象,该对象指定了初始化数据/生命周期函数函数/事件处理函数

simulink将值传递给mask封装下的模块

半世苍凉 提交于 2019-12-27 04:02:42
文章目录 参数提升 使用变量名称引用模块参数 参考链接 参数提升 1. Mask-->Create Mask 2. Parameters & Dialog-->Promote ,点击 Promote 两次 3. 出现两个变量,点击图中3所示。 4. 添加 Promoted parameters 5. 更改参数属性 Property editor-->Properties 6. 将 #2 更改为 m 7. 点击 ok 8. 回到主界面,双击 Subsystem ,即可更改参数 m,b 为 3,3 9. 运行仿真,查看输出 使用变量名称引用模块参数 1.s函数的代码: 〔程序代码〕ch2example22Sfun.m 2. 双击 ch2example22Sfun 模块,输入参数如下图: 3. 在 S-Function 模块上右键, Mask-->Create mask 4. 在 Parameters & Dialog 界面,连续四次点击 Edit ,创建四个变量 #1 #2 #3 #4 5. 更改四个变量的 Prompt 和 Name 属性如下图,并点击 ok 结束设置 6. 回到主界面,双击模块,设置参数为 2 10 1 0 7. Signal Generator 设置参数为 4 1 8. 运行仿真,查看示波器输出 参考链接 Pass Values to Blocks Under

对ajax简单的封装

依然范特西╮ 提交于 2019-12-27 03:28:32
对ajax简单的封装 demo: // type: 请求方式 // url: 请求的 URL 地址 // data: 请求的数据参数 // fn: 响应接收完毕触发的函数 function ajax ( type , url , data , fn ) { //创建 XMLHttpRequest对象 var xhr = new XMLHttpRequest ( ) //将请求方式转换为大写,方便后面的判断 type = type . toUpperCase ( ) //判断请求数据参数类型是否为对象 if ( typeof data === 'object' ) { var ary = [ ] for ( var key in data ) { ary . push ( key + '=' + data [ key ] ) } data = ary . join ( '&' ) //将请求参数转换为以&连接的字符串 } //判断请求方式,如果为GET,将请求参数拼接到url中 if ( type === 'GET' ) { url = url + '?' + data ; } //打开要发送请求的地址 xhr . open ( type , url ) //定义send中的参数为空 var datas = null //判断请求方式,如果为POST,设置请求头

JSONP原理及其简单封装

拜拜、爱过 提交于 2019-12-26 19:09:47
什么是JSONP 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准; 2、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>); 3、于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理; 4、恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据; 5、这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件(一般以JSON为后缀),显而易见,服务器之所以要动态生成JSON文件,目的就在于把客户端需要的数据装入进去。 6、客户端在对JSON文件调用成功之后,也就获得了自己所需的数据,剩下的就是按照自己需求进行处理和展现了,这种获取远程数据的方式看起来非常像AJAX,但其实并不一样。 7、为了便于客户端使用数据