随笔分类 - Javascript
摘要:网上大部分判断鼠标移入div移入移出都是使用一下方法: 这个方法确实十分奇特,使用起来十分方便。 后来自己看了一些文章,看到有另一种以斜率的方法来判断鼠标的移动方向。 上图是此方法的示意图,以浏览器左上角做原点,水平轴作为x轴,往右为正;竖直轴作为y轴,向上为正。 中间的div的左上角坐标(x1,y
阅读全文
摘要:这个案例类似于在地图上滚动滚轮,能缩小或者放大地图,分别用zoomIn和zoomOut来命名。 代码如下: 另外,detail在滚轮事件中,向上滚——放大(detail == -3),触发zoomOut;向下滚——缩小(detail == 3),触发zoomIn。 自定义事件需要trigger来主动
阅读全文
摘要:JavaScript中有一些名字十分冗长的函数名称,导致使用时会混乱,特此整理一番,加深印象。 ①Object.getOwnPropertyDescriptor ——读取某个对象特定属性的属性描述符(value / writable / enumerable / configurable) 这个方法
阅读全文
摘要:主要是受到《你不知道的JavaScript(上卷)》中,软绑定softBind()方法启发,当中应用了柯里化,这种方式确实刚开始不好理解,观看了张鑫旭的博客后,才对柯里化的方式有了一点了解。 软绑定代码,如下: 软绑定优化了硬绑定,使this指向更加灵活,可以使用隐式绑定或者显式绑定修改this。
阅读全文
摘要:1.工厂模式 缺点:①无法确定对象的类型(因为都是Object)。 ②创建的多个对象之间没有关联。 2.构造函数 缺点:①多个实例重复创建方法,无法共享。 ②多个实例都有sayName方法,但均不是同一个Function的实例。 3.原型方法 缺点:①无法传入参数,不能初始化属性值。 ②如果包含引用
阅读全文
摘要:首先看两段很相似的代码: 1. 2. 两个例子都是重写了原型对象,但是实例创建的顺序直接导致了俩个输出的结果。 第一个弹出 “Nic”,而第二个会报错“TypeError: friend2.sayName is not a function” !!! 两端代码唯一的区别就是实例在原型对象重写之前还是
阅读全文
摘要:首先是apply()一个很强大的功能——能将一个数组默认转化为参数列表!!! 应用: 1.求出一个数组中的最大值 Math.max()方法接受多个参数,但是不接受数组,所以直接Math.max(arr)是无法达到效果的,由apply()将数组转化成参数列表进行操作。 2.合并数组 ①使用concat
阅读全文
摘要:1.js解析器会优先读取函数申明,即使函数调用在申明之前, 而函数表达式必须等到执行到它所在的代码行时,才会被解释执行,如果提前调用,则会报错, 2.当函数申明的函数名与变量重复时(不推荐这样的做法),会优先解析函数申明, 3.(function(){})()——这种形式也是函数表达式。 4.具名函
阅读全文

浙公网安备 33010602011771号