摘要:class father{ constructor(x,y){ this.x=x; this.y=y; } ddd(){}}class son extends father{ constructor(x,y,z){ super(x,y); this.z=z; } ggg(){}}var r=new
阅读全文
摘要:使用了一个tem的function 然后将子类的prototype合并到实列本身 然后 r=new tem() r就是实例对象 然后 r实例具有 son的prototype属性就在r上面了
阅读全文
摘要:可以知道Symbol.iterator是等价的 那么 这个是一个函数 返回一个对象 对象有next方法 yield其实就是返回一个新的遍历器的值
阅读全文
摘要: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...
阅读全文
摘要:其实 很简单 相对于的是e.target的左上角的那个点 由于事件冒泡的存在 父元素的事件会被子元素处理 得到e.target 子元素 解决方案目前只有一个对 子元素 加一个同名函数 并且写入 e.stopPropagation()方法
阅读全文
摘要:;(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...
阅读全文
摘要: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...
阅读全文
摘要:常规的思考 A().B().C(); 那么 可以调用B方法依赖于 A()的返回值 即 A返回的对象有B方法属性 ES6的proxy出现 先看一段代码 是不是很神奇 链式加载 这个也可以叫做懒加载 (是不是有一个 很重要的名词 )promise 于是用Proxy重写了promise的简单方法 使用th
阅读全文
摘要:;(function(){ var hash=function(arr){ var me=this; me.arr=[]; arr.forEach(i=>{ me.arr.push({value:i}); }); me.c...
阅读全文
摘要:js实现深度优先遍历 和树的先序基本相识的思想
阅读全文