2018年10月28日

iterator接口 ...和for of依赖的关键

摘要: let arr = { 0: 1, 1: 2, 2: 3, length: 3 }; // arr[Symbol.iterator]=[][Symbol.iterator]; arr[Symbol.iterator] = function() { var tem = { index: 0, }; //this指向的是arr var len = th... 阅读全文

posted @ 2018-10-28 14:34 偏灬爱 阅读(121) 评论(0) 推荐(0) 编辑

e.offsetX,Y到底是相对于谁

摘要: 其实 很简单 相对于的是e.target的左上角的那个点 由于事件冒泡的存在 父元素的事件会被子元素处理 得到e.target 子元素 解决方案目前只有一个对 子元素 加一个同名函数 并且写入 e.stopPropagation()方法 阅读全文

posted @ 2018-10-28 13:51 偏灬爱 阅读(318) 评论(0) 推荐(0) 编辑

new 操作符

摘要: ;(function(){ var test=function(){ var tem={}; tem.a=1; return tem; } var r=new test();//{a:1} console.log(r); console.log(r.__proto__===test.prototype);fa... 阅读全文

posted @ 2018-10-28 13:50 偏灬爱 阅读(116) 评论(0) 推荐(0) 编辑

2018年10月27日

js 模拟substr

摘要: var str="adada"; console.log(str.substr(-1,2)); String.prototype.substr=function(){ var tem=""; if(arguments.length===0) return this.split("").join(""); if(arguments[0]>=this.len... 阅读全文

posted @ 2018-10-27 11:09 偏灬爱 阅读(126) 评论(0) 推荐(0) 编辑

js 对于链式加载的思考

摘要: 常规的思考 A().B().C(); 那么 可以调用B方法依赖于 A()的返回值 即 A返回的对象有B方法属性 ES6的proxy出现 先看一段代码 是不是很神奇 链式加载 这个也可以叫做懒加载 (是不是有一个 很重要的名词 )promise 于是用Proxy重写了promise的简单方法 使用th 阅读全文

posted @ 2018-10-27 10:50 偏灬爱 阅读(152) 评论(0) 推荐(0) 编辑

js 实现哈夫曼树

摘要: ;(function(){ var hash=function(arr){ var me=this; me.arr=[]; arr.forEach(i=>{ me.arr.push({value:i}); }); me.c... 阅读全文

posted @ 2018-10-27 10:34 偏灬爱 阅读(424) 评论(0) 推荐(0) 编辑

js实现深度优先

摘要: js实现深度优先遍历 和树的先序基本相识的思想 阅读全文

posted @ 2018-10-27 10:31 偏灬爱 阅读(603) 评论(0) 推荐(0) 编辑

js 广度优先遍历

摘要: js 广度优先 阅读全文

posted @ 2018-10-27 10:31 偏灬爱 阅读(131) 评论(0) 推荐(0) 编辑

2018年9月30日

模拟 Function的bind call apply

摘要: 首先 var a={}和var a=1是不同的 第一个a是指向内存的引用 类似指针 第二个是value值 于是步入正题 我们知道new 是产生了一个引用 那么 例子 var a=function(){} a指向了一个function类型 函数也是对象 在函数的prototype里面 存在一个bind 阅读全文

posted @ 2018-09-30 19:15 偏灬爱 阅读(66) 评论(0) 推荐(0) 编辑

2018年9月17日

Promise模拟 async函数

摘要: async中的await实则是包了一层promise函数 然后一层一层的嵌套 阅读全文

posted @ 2018-09-17 18:41 偏灬爱 阅读(94) 评论(0) 推荐(0) 编辑

导航