摘要:你可能认为调用,和结果应该是,,,但实际结果是全部都是原因就在于返回的函数引用了变量,但它并非立刻执行。返回闭包时牢记的一点就是返回函数不要引用任何循环变量,或者后续会发生变化的变量。真的是看着很晕那 闭包 另一个需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行。我们来看一个例子: function count() { var arr = []; ...
摘要:在编写处理对象的函数时,必须做出决定是希望这个函数修改其对象实参的的属性,还是返回新对象。高阶函数就是以形参或者返回函数的函数,他们可以简化集中程序设计任务,可以减少脚本中的共同代码数量。编写一个函数,返回一个给定字符在字符串中的出现次数。 主要总结: 函数值是一个带有参数的代码块,可以根据需要任意运行(调用) 调用一个函数,我们会向它的形参传送实参。多余的形参会被转换为undefi...
摘要:伪线程重点浏览器的内核是多线程的,一个浏览器一般至少实现三个常驻线程引擎线程,渲染线程,浏览器事件触发线程。当我们要循环过百万级的数据甚至亿的时候怎么办那就用模拟一个多线程。 web worker 这里就不多说了,主要说伪线程。因为web worker不能操作dom元素,很多时候用不上。 伪线程 重点:浏览器的内核是多线程的,一个浏览器一般至少实现三个常驻线程:javascript引擎...
摘要:这次是利用的自定义指令实现方块拖拽指令名称参数原生元素拖拽元素中包括和结构 这次是利用vue的自定义指令实现方块拖拽 Vue.directive(指令名称,function(参数){ this.el -> 原生DOM元素 }); 拖拽:元素onmousedown中包括document.onmousemove和document.onmouseup 结构: ...
var jsonp = function() { var extend = function(obj, attrs) { for (var name in attrs) { obj[name] = attrs[name]; } }; var jsonp = function() { jsonp_imp.apply(null, arguments); ...