函数封装

封装一个千分位函数,并且保留两位小数

和自甴很熟 提交于 2019-12-03 02:27:40
封装一个保留千分位的函数,并且保留两位小数 const thousandsFilter = (data) => { if (!isNaN(data)) { if (data > 999 || data < -999) { let dataStr = data.toString() + '.00' let integer let newdata = '' let flg = ',' integer = dataStr for (let i = integer.length; i > 0; i -= 3) { let tmp = integer.substring(i - 3, i) if (i - 3 <= 0) { newdata = tmp + newdata } else newdata = flg + tmp + newdata } return newdata // 传入数字,返回的是字符串 } else { return data } } else { return data } } 封装一个保留千分位的函数,不保留小数位 const thousandsFilter = (data) => { if (!isNaN(data)) { if (data > 999 || data < -999) { let dataStr = data.toString() let

封装网络请求类来理解闭包

匿名 (未验证) 提交于 2019-12-03 00:27:02
import UIKit import Alamofire enum MethodType { case get case post } class NetworkTools { class func requestData(_ type : MethodType, URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping (_ result : Any) -> ()) { // 1.获取类型 let method = type == . get ? HTTPMethod. get : HTTPMethod. post // 2.发送网络请求 Alamofire.request(URLString, method: method, parameters: parameters).responseJSON { (response) in // 3.获取结果 guard let result = response. result . value else { print(response. result .error) return } // 4.将结果回调出去 finishedCallback( result ) } } } NetworkTools.requestData

原生js封装Ajax函数

匿名 (未验证) 提交于 2019-12-03 00:22:01
Ajax,是 Asynchronous JavaScript + XML 的简写。指一种创建交互式网页应用的网页开发的技术。 通过 异步模式 ,提升了用户体验。优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用。Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大量用户下的服务器负载。 Ajax最大的特点就是局部刷新 。 Ajax 技术核心是 XMLHttpRequest 对象(简称 XHR) Ajax的封装函数 //把传入的所有数据看成一个对象obj //示例 obj={type:"get",url:"data.json",data:{},success:function(){},error:function(){}} /*obj里含要发送的请求类型:get 或 post 要有路径 url 传的值data 可有可无 后面是成功时success调用的方法,失败时error调用的方法 * */ function Ajax(obj){ if(window.XMLHttpRequest){ var xhr = new XMLHttpRequest(); }else{ var xhr = new ActiveXObject("Microsoft.XMLHTTP"); }//这个if语句 浏览器兼容 var str = ""; for(var attr

无人驾驶软件开发工具

匿名 (未验证) 提交于 2019-12-03 00:17:01
1.系统:ubuntu 14.04 2.IDE:VSCode,Qt 3.可视化库: OpenCV 。封装了大量的可应用于无人驾驶研究的函数,包括各种滤波器算法、特征点提取、矩阵运算、投影坐标转换、机器学习算法等。(Learning OpenCV3) libQGLViewer。OpenGL 适配 qt 的一个库。官网及压缩包内的 example。 Boost 库。相关的(电子或纸质)书,把目录读一遍。 QCustomplot。对照着 example 中的例程写代码,可以快速把自己的数据变成可视化图像。 4.通信机制:Ros,LCM 5.Git & Github。廖雪峰的 Git 教程,浅显易懂,而且还配合图文+视频,简直良心。 参考:https://mp.weixin.qq.com/s/cvnQaS6lsSGljt1IiUU7tA 来源:博客园 作者: 寒江小筑 链接:https://www.cnblogs.com/yrm1160029237/p/11796817.html

Mockjs ---封装简化

匿名 (未验证) 提交于 2019-12-03 00:13:02
mock--index.js 只向外暴露这一个文件 // 导入扩展函数 import './extends' // 导入商品模块 import './goods' mock--extends.js 扩展文件--自己分装的数据 // 导入模拟假数据的包 import { Random } from 'mockjs' // 自定义一个数组--随机获取这个数组里边的值--引用Random // 创建自定义Mock函数 Random . extend ({ // 自定义函数名:function 函数 fruit : function () { const arr = [ '榴莲' , '菠萝蜜' , '椰子' , '苹果' , '菠萝' ] return this . pick ( arr ) } }) mock--goods.js 商品模块 // 导入模拟假数据的包 import Mock from 'mockjs' // 通过Mock.mock()来模拟API接口----GET请求 // eslint-disable-next-line no-undef Mock . mock ( '/api/goodslist' , 'get' , { status : 200 , message : '获取商品列表成功' , // 生成5到10条,或者直接data|5条数据 'data|5-10'

JS JSONP 函数封装

匿名 (未验证) 提交于 2019-12-03 00:11:01
转载自 https : //my.oschina.net/shuaihong/blog/1542554 myJsonp = function ( url , data , callback ){ var fnName = 'myJsonp_' + Math . random (). toString (). replace ( '.' , '' ); //定义一个全局回调函数 window [ fnName ] = callback ; //初始化序列化参数 var querystring = '' ; for ( var attr in data ){ querystring += attr + '=' + data [ attr ] + '&' ; } //动态创建script标签 var script = document . createElement ( 'script' ); //后台接受回调函数,并调用 script . src = url + '?' + querystring + 'callback=' + fnName ; //处理完毕之后,删除script标签,否则多次请求,页面会存在多个script标签 script . onload = function (){ document . body . removeChild ( script ); }

windows socket 客户端封装成类

匿名 (未验证) 提交于 2019-12-02 23:57:01
client TcpClient01.h #pragma once #include "AllHeader.h" class TcpClient01 { private: SOCKET skt; public: //初始化socket void init(); void connectServer(const char *IP, u_short port); void onRun(); bool isRun(); void readData(); void writeData(); void closeSocket(); public: TcpClient01(); ~TcpClient01(); }; TcpClient01.cpp #include "TcpClient01.h" #include "define.h" void TcpClient01::init() { WSADATA wd; int ret = WSAStartup(MAKEWORD(2, 2), &wd); if (ret != 0) { printf("[client] WSAStartup error ...\n"); return ; } printf("[client] WSAStartup success ...\n"); //创建套接字 skt = socket(AF_INET, SOCK

JS封装

匿名 (未验证) 提交于 2019-12-02 23:49:02
1、对象原型封装 基本思想是在原函数中建立getter和setter方法,之后在原函数的原型进行其他操作。 测试demo: /** 1、这种封装个方法getter和setter方法都在该构造函数中,数据较多的时候占用的内存较大**/ function Person(name,age,no){ } Person.prototype={ toString:function(){ return"no = " + this.getNo() + " , name = " + this.getName() + " , age = " + this.getAge(); }}; Var per=new Person("lili",23,"0004");sconsole.log(per.toString());per.setNo("0001"); console.log(per.toString()); per.setAge(25); console.log(per.toString()); 2、闭包封装 基本思想:构建闭包函数,在函数内部返回匿名函数,在匿名函数内部构建方法,在每次进行实例化调用的时候,其实都是每次都是调用返回函数的子函数,同时能保持对对象中的属性的共享 测试demo : * 2、闭包的封装方式,在这个封装方法中,所有的实例成员都共享属性和方法,

Framework7――封装

匿名 (未验证) 提交于 2019-12-02 23:49:02
强依赖:jQuery,Framework7 3,除非不支持jQuery,不然就是不支持Framework7,不然不可能不兼容 封装原则:在未来可能使用其他框架的前提下,在保证框架的可用性的同时,尽可能地提高复用性,尽量去除Framework7的个性化代码,一个组件一个对象,根据开发逐步添加函数相对的,如果使用Vue或者其它,最好不要一起操作同一个dom,因为封装基于jQuery的dom操作 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <!-- framework7 --> <link rel="stylesheet" href="framework7/dist/css/framework7.min.css"> <link rel="stylesheet" href="framework7/dist/css/framework7.md.min.css"> </head> <body> <div id="container" class='main-table' id="as-main-table" style="overflow: hidden"> </div> <br> <div id="container2" class="list links-list"> <

on、off、emit的简单封装

匿名 (未验证) 提交于 2019-12-02 23:49:02
on的封装: 思路: 1.判断事件名称是否存在。 2.如果存在的情况下将cb存放在eventName这个数组中。 3.如果不存在创建Key值为eventName,val为数组。 const $on=(eventName,cb)=>{ if(!eventList[eventName]){ eventList[eventName] = []; } eventList[eventName].push(cb) } off封装: 思路: 1.当调用off的时候获取到eventName这个值,对值判断,如果值不存在直接return 2.如果存在判断callback是否存在,如果存在删除指定的函数 3.如果不存在将当前的数组清空。 const $off =(eventName,callback){ if(cb){ let index = eventList[eventName].indexOf(cb); eventList[eventName].splice(index,1); }else{ eventList[eventName].length = 0; } } emit封装 1.当调用emit的时候获取到eventName这个值 2.对值进行判断 如果不存在直接return 如果存在遍历这个值全局进行调用然后将parms传入这个函数; const $emit =((eventName