解释一 作者:杨志 链接:https://www.zhihu.com/question/20289071/answer/14644278 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 要先明白存在call和apply的原因,才能记得牢一点: 在javascript OOP中,我们经常会这样定义: function cat() {} cat.prototype = { food: "fish", say: function() { alert(&quo…
位图的canvas一直不会被svg比下去的原因了. 俗话说,须弥芥子,是大小之说,也有以小见大之说,颗颗粒子,足以构建宏大效果. 这是一篇炒鸡简单的canvas粒子教程,主要是讲如何粒子特效的原理,一点运动中的公式. 有所准备 首先,当我们知道要做粒子的效果的时候,我们要思考我们如何来实现,而且还要尽可能的面对我们亲爱的对象,于是便有了如下的思考. 要有粒子 粒子在运动,运动就需要速度 匀速运动/变速运动 运动之外还需要哪些处理 全局中的永恒 这里我定义了时间与粒子生成的数量,还有一个粒子池.…
简介:apply()和call()都是属于Function.prototype的一个方法属性,它是JavaScript引擎内在实现的方法,因为属于Function.prototype,所以每个Function实例,也就是每个方法都能使用apply和call方法. 作用:call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可…
前段时间在使用javascript的过程中遇到了继承的问题,自己顺便就对call()和apply()方法进行了了解. 两个方法的共同之处:这两个方法作用相同,都用来改变当前函数调用的对象,即改变this的指向. 两个方法的不同之处:不同之处就是两种方法的传参方式不同,apply接受的是数组参数,call接受的是连续参数. apply()方法的定义: Function.apply(obj,args); obj:这个对象会代替Function类里边所指向的this对象. args:这是一个数组,作为…
本系列作为Effective JavaScript的读书笔记. 以下是一个拥有可变參数列表的方法的典型样例: average(1, 2, 3); // 2 average(1); // 1 average(3, 1, 4, 1, 5, 9, 2, 6, 5); // 4 average(2, 7, 1, 8, 2, 8, 1, 8); // 4.625 而下面则是一个仅仅接受一个数组作为參数的样例: averageOfArray([1, 2, 3]); // 2 averageOfArray([…
JavaScript 关于call 方法和 apply 方法常用形式 call obj.call(object, args , ....); apply obj.apply(object, [args1,args2....]); 用法和结果都大体相同,但是要怎么使用?? 给段代码大家跑一下: function add(a, b, c) {} var a = Array(10);var obj = Object.create({}); console.time('apply');for (var…
前言 在<Redux系列01:从一个简单例子了解action.store.reducer>里面,我们已经对redux的核心概念做了必要的讲解.接下来,同样是通过一个简单的例子,来讲解如何将redux跟react应用结合起来. 我们知道,在类flux框架设计中,单向数据流转的方向无非如下: 转换成redux的语言,就是这个样子.接下来就看实际例子,一个简单到不存在实用价值的todo list. 例子:实际运行效果 本文的代码示例可以在github上下载,点击查看.README里有详细的运行步骤,…
啦啦啦啦啦啦啦 写这个不用多长时间,我直接写代码注释都是些语句,Sql语句和Api来操作数据库 ,语句的参数我会注释 SQLite数据库创建数据库需要使用的api:SQLiteOpenHelper必须定义一个构造方法: //arg1:数据库文件的名字 //arg2:游标工厂 //arg3:数据库版本 public MyOpenHelper(Context context, String name, CursorFactory factory, int version){ }//数据库被创建时会调…
分享一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码.艺术二维码(黑白/彩色)和动态GIF二维码. 用法比较简单,直接通过pip安装即可. pip3 install myqr 安装过程如下所示: 安装完成后,就可以基于命令指令生成想要的二维码了,myqr模块参数说明如下: 主要参数翻译如下: -v :定义二维码的大小,范围为 1 ~ 40,默认大小取决于输入的内容 -l : 定义二维码纠错率,也就是说二维码被遮挡一部分仍然被识别出来,有四个等级,分别是L(7%).M(…
之前写过一篇<ajax.axios.fetch之间的详细区别以及优缺点> 戳这里 1.封装 (http.js) class Ajax { get(url) { return new Promise((resolve, reject) => { fetch(url) .then(res => res.json()) .then(data => resolve(data)) .catch(err => reject(err)) }) } // post方式 post(url…