
JS
优资园
分享才能进步
展开
-
apply 和 call
apply 和 call定义: apply和call更改对象的内部指针,即改变对象的this指向的内容其本质就是将特定函数当做一个方法绑定到指定对象上并进行调用举个例子说明下就理解了:fun.apply(obj)其实就是将fun函数的地址赋值给obj的一个属性,此时fun函数内的this就指向了obj,(obj成了fun函数的所有者)我们就可以通过obj调用fun函数了 console....原创 2019-10-15 16:29:08 · 204 阅读 · 0 评论 -
this的研究
研究 this定义: 总是指向函数的所有者看完还是很懵逼,首先我们要搞懂什么是调用者什么是所有者,如下例子:调用者:把函数a赋值给变量c那变量域 c 就是函数a的调用者,此时的变量c存放的是a的地址同理d的x属性域也存放a函数的地址,它也是函数a的调用者.所有者:因为c 是属于全局对象window 所有,所以window对象就是函数a的所有者同理,x属于对象d所有,所以对象d也...原创 2019-10-15 15:39:26 · 166 阅读 · 0 评论 -
javascript装饰者模式
javascript装饰者模式装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。实例讲解:刚出售的一栋楼有100套清水房现有 冰箱,床,空调,根据每套房主人的需要来决定是否安装,或是安装几个 /* * 刚出售的一栋楼有100套清水房 * * 现有 冰箱,床,空调,根据每套房主人的需要来决定是否...原创 2018-10-09 11:36:00 · 238 阅读 · 0 评论 -
理解javscript 桥接模式
理解javascript 桥接模式桥接模式是指:将抽象和行为划分开来,从而将各个可能变化的维度分离开来,各自独立成一个类,但是能够动态的组合。举个例子:实现每个角色的功能(简单说明,不做实际使用)人 分为学生和老师两个角色,每个角色都有吃,跑,玩等功能类,如果实现每个角色有哪些功能常规的做法:为了简单说明问题,使用ES6来说明这个问题: var role = function()...原创 2018-10-05 14:25:35 · 242 阅读 · 0 评论 -
Javascript创建对象
创建对象 /* * 创建对象 * */ //Object 方式一 var person = new Object(); person.name = "zshsats"; person.age = 18; console.log(person); //=>{name: "zshsats", age: 18} // 对象直接量 方式二...原创 2018-09-22 15:49:35 · 823 阅读 · 0 评论 -
深入理解javascript 对象原型和构造函数
深入理解javascript 对象原型和构造函数对象的创建过程当你使用new操作符调用F构造函数时,会经历以下步骤:1.创建一个空对象,作为将要返回的实例对象2.将空对象的原型指向构造函数的prototype属性,也就是F构造函数的prototype属性。3.将空对象赋值给构造函数内部的this关键字,也就是this关键字会指向实例对象。4.开始执行构造函数内部的代码。var st...原创 2018-10-03 16:29:11 · 291 阅读 · 0 评论 -
Iview 表单验证的规则总结
Iview 表单验证的规则总结 <FormItem prop="UserId" :rules=" [ { required: true, message: '请选择一项', trigger: 'change',type:'number',min:1}, ]" > <Select ...原创 2018-09-20 16:04:20 · 14820 阅读 · 0 评论 -
使用javascript编写简单的加密解密
使用javascript编写简单的加密解密加密: str 是需要加密的字符串,key是需要加密的秘钥,秘钥中的字符不能重复function enc(str,key) { var length = key.length; var keyList = key.split(""); var s="",bit,bit1,bit2,bit3,bit4;...原创 2018-09-19 15:14:26 · 1986 阅读 · 0 评论 -
javascript Number和Math
js math,number操作原创 2018-09-13 08:55:10 · 261 阅读 · 0 评论 -
Javascript 字符串操作
字符串操作:string.charAt(index) var str = "abc123ABC字符串"; console.log(str.charAt(4)); => 2我们将返回位置 3 的字符的 Unicode 编码console.log(str.charCodeAt(3));=>49string.concat(string1, string2, ...原创 2018-09-13 08:43:31 · 213 阅读 · 0 评论 -
js 模板语法
js 模板语法使用artTemplate:https://aui.github.io/art-template/zh-cn/docs/index.html原创 2018-09-10 10:29:15 · 3720 阅读 · 0 评论 -
javascript 接口模拟的三中实现方式
javascript 接口模拟的三中实现方式三中方法:注释法,属性检查法,鸭式变型法注释法: //注释法 定义接口类 /* * interface interfaceClass{ * function eat(x,y) * function run(z) * } * * */ var Person = fun...原创 2018-09-28 17:41:10 · 310 阅读 · 0 评论 -
javascript 单体模式
javascript 单体模式单体:来划分命名空间将一批相关的方法和属性组织在一起的对象只能被实例化一次.单体分为四种:普通单体var person = { name:"普通单体", getName:function () { return this.name; } ...原创 2018-09-29 09:42:44 · 256 阅读 · 0 评论 -
javascript 链式调用
javascript 链式调用简单的链式调用 function person() { this.run = function () { console.log("跑了"); return this; }; this.eat = function () ...原创 2018-09-29 14:17:43 · 1998 阅读 · 0 评论 -
js类型
js 检测数据类型常用的方法:typeof() 返回某个字符串undefinedbooleanstringnumberobjectfunctionconstructor 判断对象的类型[].constructor==Array/123/.constructor==RegExpinstanceof 只能用来判断两个对象是否属于实例关系, 而不能判断一个对象实例具体属于哪...原创 2019-05-04 16:47:56 · 202 阅读 · 0 评论 -
Http协议知识点一
http的状态码:2xx:表明请求被正常处理200 客户端发送的请求在服务端被正常处理204 服务器接收的请求已经处理成功,但没有资源可返回206 客户端进行了范围请求,响应报文包含由Content-Range指定范围的实体内容(即对资源某部分的请求)3xx:重定向301 永久重定向,请求资源已被分配新的URI,以后应使用资源现在所指的URI302 临时性重...原创 2019-05-04 00:05:16 · 183 阅读 · 0 评论 -
javascript观察者模式
javascript观察者模式观察者模式又称“发布-订阅(Publish/Subscribe)模式”,订阅者也称为观察者,而补观察的对象称为发布者或主题。当发生了一个重要的事件时,发布者将会通知(调用)所有订阅者并且可能经常以事件对象的形式传递消息。例如:(只做简单的说明观察者模式)几个程序员小朋友要从某网站订阅相关书籍,js编程全解这本书但现在没货,等有货再通知他们,去购买,其中王五同...原创 2018-10-10 11:02:10 · 579 阅读 · 1 评论 -
javascript组合模式
javascript 组合模式需求:一个学校有两个班级,每个班级有两个组,小组分着上课,一起考试不使用组合模式: /* * 需求 , * 一个学校有两个班级,每个班级有两个组,小组分着上课,一起考试 * *不使用组合模式 * */ var school = function (name...原创 2018-10-09 11:59:27 · 479 阅读 · 0 评论 -
javascript 享元模式
javascript 享元模式享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。例如:需求 : 在开学季,家里蹲大学,有大量的同学需要入学登记方式1: 不使用享元模式 var student = function (school,professio...原创 2018-10-09 11:57:15 · 585 阅读 · 0 评论 -
javascript 代理模式
javascript 代理模式通过图来讲解什么是惰性代理(第二个案例)普通代理模式(用处不大,基本不用,主要做案例说明代理模式是什么) /* * 普通代理模式 * */ //图书类 var Book = function (bid,bName,bPrice) { this.bid = bid; ...原创 2018-10-09 11:47:26 · 339 阅读 · 0 评论 -
javascript 适配器模式
javascript 适配器模式适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作例如, 我以前做了个api库,其中有个add函数,之前传递两个参数,先在呢,我想传递三个参数,但我依然想兼容以前的api库接口请参考前面文章 /* * 适配器模式 * */ //以前的api 库 var fun = new Interfa...原创 2018-10-09 11:42:01 · 216 阅读 · 0 评论 -
使用jquery 写一个分页插件
使用jquery 写一个分页插件预览地址:https://zshsats.github.io/fileDemo/plugin/page/index.html github:https://github.com/zshsats/fileDemo/tree/master/plugin/page 效果图: 使用用法: 样式可自行修改,这里只做简单处理 body{ ...原创 2018-09-16 09:22:33 · 518 阅读 · 0 评论 -
js 判断浏览器类型和单一判断浏览器
js 判断浏览器类型和单一判断浏览器IE Chrome Edge Firefox Opera 浏览器类型判断window.onload= function () { //封装检测浏览器类型的函数 function getBrowserType(cal){ // 检测浏览器类型 var userAgent = navigator.userA...原创 2018-09-12 08:11:51 · 352 阅读 · 0 评论 -
webpack3 写个项目的空架子
webpack3 写个项目的空架子项目目录: 开发工具 : webstorm 1: npm init -y 2:npm i –save-dev webpack@3.8.1和npm i –save-dev webpack-dev-server@2.7.13.安装loader "babel-core": "^6.26.3", "babel-loader": "^...原创 2018-07-27 19:22:44 · 313 阅读 · 0 评论 -
使用Vue带你一步步封装百度编辑器UEditor
使用Vue带你一步步封装百度编辑器UEditor开发工具 : webstorm 1: npm init -y 2:npm i –save-dev webpack@3.8.1和npm i –save-dev webpack-dev-server@2.7.1 3:新建配置webpack的文件webpack.config.js 4....原创 2018-07-28 15:42:17 · 3812 阅读 · 0 评论 -
ivew 动态表单验证和Property or method 字段 is not defined on the instance but referenced during render.
ivew 动态表单验证和Property or method 字段 is not defined on the instance but referenced during render.问题:iview form表单验证 分析:先看一下官网的例子: name <FormItem :prop="name" :rules="{required: true, message...原创 2018-07-07 15:49:56 · 189485 阅读 · 6 评论 -
JS parseInt()和Number的精度丢失问题
JS整形parseInt()和Number的精度问题1.js 所能表示的最大整数Math.pow(2, 53)//2的53次方结果:9007199254740992 console.log(Math.pow(2, 53)); console.log(Math.pow(2, 53)+1);结果:9007199254740992 9007199254740992...原创 2018-07-04 10:59:21 · 6368 阅读 · 0 评论 -
PC使用js调用qq聊天
PCs使用js调用qq聊天第一种是链接的方式: 注:target=”_blank”在a标签加上这个,如果对方不在线会提醒打开qq,如果对方在线会提示添加好友页面 如果a标签不加target=”_blank”,弹框会闪退 window.location.href = "http://wpa.qq.com/msgrd?v=3&amp;uin=3065160951&amp;site=qq&...原创 2018-07-10 16:08:43 · 3445 阅读 · 0 评论 -
图片上传File对象不兼容IE
图片上传不兼容IE的File对象非IE上传: 将base64为图片转换成file文件,上传 let formData = new FormData(); file = that.dataURLtoFile(data,this.file.name); formData.append('files',file); dataURLtoFile(dataurl, filename)...原创 2018-06-27 17:20:30 · 8332 阅读 · 1 评论 -
省市区三级联动多选
Jquery实现省市区三级联动多选项目地址:https://github.com/zshsats/city原创 2018-04-09 10:24:34 · 8091 阅读 · 4 评论 -
JS视口坐标,屏幕坐标,页面坐标分析
JS视口坐标,屏幕坐标,页面坐标分析视口坐标 clientX clientY页面坐标 pageX pageY 代码: console.log("视口坐标位置:","clientX:",e.clientX,"clientY:",e.clientY); console.log("屏幕坐标位置:","screenX:",e.sc...原创 2018-04-27 14:54:29 · 7869 阅读 · 0 评论 -
Webpack+Vue-router实现懒加载
Webpack+Vue-router实现懒加载vue的配置: 异步加载const loginMain= () => import('src/modules/components/login/loginMain/loginMain.js');const routes = [ { path: '/',redirect:"/login", component...原创 2018-05-02 16:37:02 · 1034 阅读 · 0 评论 -
使用js实现下载功能
使用js实现下载功能&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;文件下载&lt;原创 2018-08-10 16:31:56 · 4579 阅读 · 0 评论 -
webpack4.0构建一个不使用webpack-dev-server监控文件变化的配置
webpack4.0构建一个不使用webpack-dev-server监控文件变化的配置webpack4.0配置:const path = require('path');const webpack = require("webpack");const htmlWebpackPlugin = require("html-webpack-plugin");module.export...原创 2018-08-14 18:49:22 · 1276 阅读 · 0 评论 -
JS原型和继承
原型对象原型对象实际上是构造函数的一个实例对象,类的所有实例对象都从同一个原型对象上继承属性,因此,原型对象是类的核心。 原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,他们才是属于同一个类的实例。而初始化对象的状态的构造函数则不能作为类的标识,两个构造函数的prototype属性可能指向同一个原型对象,那么这两个构造函数创建的实例属于同一个类的。对象字面量对象创建的...原创 2018-08-12 20:55:26 · 802 阅读 · 0 评论 -
动态引入脚本和样式
动态引入脚本和样式function loadScript(url) { var script = document.createElement("script"); script.type = "text/javascript"; script.src=url; document.body.appendChild(script);...原创 2018-09-09 14:38:21 · 367 阅读 · 0 评论 -
history对象
history对象保存着用户上网的历史记录 go(number)方法://前进一页history.go(1)history.forward()//后退一页history.go(-1)history.back()//前进2页history.go(2)//跳转到最近的页面history.go("baidu.com")历史记录的数量 history.length...原创 2018-09-09 11:03:31 · 194 阅读 · 0 评论 -
JS检测浏览器插件
JS检测浏览器插件预览地址:https://zshsats.github.io/fileDemo/bom/navigator.html 代码:https://github.com/zshsats/fileDemo/blob/master/bom/navigator.html原创 2018-09-09 10:50:56 · 1257 阅读 · 0 评论 -
Location 对象用法
Location 对象用法github:https://github.com/zshsats/fileDemo/blob/gh-page/bom/location.html 属性: 方法: location.replace(“https://www.baidu.com/“);原创 2018-09-09 10:15:57 · 432 阅读 · 0 评论 -
window.open()的用法和检测是否被屏蔽
window.open()的用法github:https://github.com/zshsats/fileDemo/blob/master/bom/test1.html window.open()打开一个新的窗口 结果:原创 2018-09-08 14:29:49 · 1578 阅读 · 0 评论