09 2018 档案
摘要:在检查组内小伙伴提交的tabToggler插件的js代码时,发现了onclick的如下用法: 显然这个this指向事件源对象—eventTarget,最近一直在钻研闭包和this的我,看到这里觉得非常的怪,为什么这里的this可以指向eventTarget呢,而且在书写在html标签里的事件处理函数
阅读全文
摘要:平时习惯了用js操作dom树来与html页面进行交互,基本都是通过web API接口实现的,最近看闭包和原生js的知识点比较多,昨天无意中看到了onclick中的this指向问题,遂用native js方式模拟了onclick再html标签里的this和js事件里的this,详见上一篇博客:用js的
阅读全文
摘要:1.安装cnpm的nodejs包管理工具,命令行: npm install -g cnpm --registry=https://registry.npm.taobao.org 2. 每个vue项目需要配置自己单独的node_modules模块,具体构建过程如下: step1: cd到你的项目根目录
阅读全文
摘要:在利用vue组件进行事件监听时发现,如果对N个vue组件实例的bus总线绑定同一事件的回调函数,触发任意组件的对应事件,回调函数至少会被执行N次,这是为什么呢? 为此,调研了普通对象的事件绑定和触发实现方式,参考:JavaScript实现自定义对象的自定义事件。 其基本思想就是:设计一个原型对象,作
阅读全文
摘要:在查阅对象自定义事件及其触发实现的过程中,发现了如下代码: 即:构造函数的原型可以是其他构造方法new出来的对象实例,虽然理解构造函数原型就是一个对象,但通常都是用对象直接量来指定,如:F.prototype ={},这种用法,引起了一些思考:如果原型对象和构造函数定义了完全相同的属性,那么原型方法
阅读全文
摘要:在利用git管理本地发布的galleryLeftOrRight插件项目时,按照git的使用方法:先commit→master,再 push,发现提示错误git did not exit cleanly (exit code 1),在网上看了一篇文章,大概意思是,一般是因为本地代码与服务器端代码合并出
阅读全文
摘要:块级元素社设置了text-align:center以后,对其直接行内元素/果冻元素、继承行内元素/果冻元素都会产生“居中效应”。 结果:所有的span按照居中对test4进行填充; li元素因为继承了test4的text-align:center属性,所以li内的文本元素也按照居中形式填充li。 因
阅读全文
摘要:参考资料:实现绝对定位元素水平垂直居中的两种方法 第一种就是利用偏差补偿法,比较常用,易于理解。 第二种利用了绝对定位的位置拉伸特性(比如,将left和right设置为相同的数值,并将margin-left,margin-right设置成auto,则元素会相对父元素左右水平居中,上下一样的道理)。
阅读全文
摘要:在编写自定义插件my-slider的过程中,发现无论float还是inline-block均不能保证div内的内容不换行(这两个属性在内容超出容器尺寸后,均将剩余内容做换行处理),在浏览器内比较了自己定义的my-slider-item和mui框架定义的mui-slider-item,发现其用了:wh
阅读全文
摘要:在web项目中,经常会使用jquery和mui等js框架,之前只是按照API说明去按规则使用,比如在jq和mui中,事件处理函数中可以直接用this访问事件源,如下面的代码: 在界面触发了点击事件后,打印this.id信息如下: 很显然,此处的this指向了事件源这个对象,或者说,事件处理函数的执行
阅读全文
摘要:在平时的编程过程中,用构造函数创建实例对象比较多,则实例对象instance会继承构造函数原型,如下面例子所示: 打印结果如下: 今天在阅读mui框架源码时,发现了如下原型设置方法,即可在对象诞生后根据自己的需求给其补充原型! 打印结果如下: 后面如有新方法将继续补充......
阅读全文
摘要:在处理类数组中,发现了两种将数组方法应用于类数组的方法,现将call/apply的常用方式总结一下。 一、当做函数调用 二、作为对象的方法,给第三方使用 此处,用一个[]数组实例,来引用它的every方法的call方法; 三、作为原型的方法,给第三方使用 此处,用Array的原型对象中的every方
阅读全文
摘要:在查看一些插件源码时,在做数据校验时,经常用到!!运算符,如: 乍看有点懵,其实按照js内置 "!" 运算符从右到左按次序剖析,也就理解了。 先看内层运算: !obj ,这是一个非运算: 当obj为假时(null/undefined/false/NaN/""等),非运算后的结果未false; 当ob
阅读全文
摘要:很多js的框架与插件编写都用到了闭包,所以,阅读和掌握闭包很有必要。最近学习vue框架时,经常会猜想很多功能的native js实现,很多都应用到了闭包,闭包除了目前已知的一些特性,如:可以保持局部变量以减少对全局作用域的污染外,一些情况下必须用闭包才能实现。 先贴一个根据自己的理解绘制的闭包原理:
阅读全文
摘要:Vue的全局组件,在注册后,可在全局范围内无限次使用,猜想是利用了闭包"可以保持形参"的特性,使初始化时的作用域得意保存,下面用原生js和部分jquery代码模拟了数据解析和组件渲染的技术设计思想,简化期间忽略了应用scope,组件实例直接追加在body里了,具体过程如下: 1.设计并扩展Array
阅读全文
摘要:call/apply是函数原型定义的方法(Function.prorotype),在使用时要注意第一个形参(args[0]),一定是指向函数所要挂载的上下文对象--context,若对象非必须,则要将第一个参数置为null或undefined,不显示传入context,按照call/apply的实现
阅读全文
摘要:扩展Function原型方法,此处用myBind来模拟bind实现 Function.prototype.myBind = function(o /*,args*/){ //闭包无法获取this关键字,故用self进行保存 var self = this; var boundArgs = argum
阅读全文
摘要:首先,请确保你的网站安装了你所需的双语语言,详细安装过程见:https://www.cnblogs.com/surfer/p/9619345.html 第一步:设置内容管理 可以按照个人需求进行语言编辑,如修改名称等。 第二步:设置双语版主菜单 建议 保留默认mainMenu菜单,保留一个语言选项为
阅读全文
摘要:1.管理后台控制菜单→“Extension”→“Install Languages” 2. 选择并安装你的目标语言,如中文简体 3.在“语言管理”模块分别设置前台--“site”和“后台”--Administrator的语言 设置后,若后台选择了简体中文,则后台管理界面应该汉化成功了。
阅读全文