document.onclick = function (e) { let a = e || window.event; //处理兼容,获取时间对象 let o = a[‘target‘] || a[‘srcElement‘];//处理兼容,获取信息 console.log(o.tagName) } //优雅实现 function EleName(evt){ evt=evt||window.event; let slttag=evt.target||evt.srcElement; let elename=slttag&&slttag.tagName?slttag.tagName.toLowerCase():‘no tagName‘; console.log(elename); } window.onload=function(){ let el =document.querySelector(‘body‘); el.onclick=EleName; }
// 示例一 function class1(){ console.log(‘初始化‘) } class1.prototype.menthod=function(asg){ console.log(asg) return this; } let cl=new class1(); cl.menthod(‘第一次调用‘).menthod(‘第二次调用‘); // 示例二 let obj={ a:function(){ console.log(‘a‘) return this; }, b:function(){ console.log(‘b‘); return this; } } obj.a().b(); // 示例三 class MyMath{ constructor(value){ this.hasInit=true; this.value=value; if(!value){ this.value=0; this.hasInit=false; } } add(){ let args=[...arguments]; let initValue=this.hasInit?this.value:args.shift(); const value=args.reduce((prev,curv)=>prev+curv,initValue); return new MyMath(value) } minus(){ let args=[...arguments]; let initValue=this.hasInit?this.value:args.shift(); const value=args.reduce((prev,curv)=>prev-curv,initValue); return new MyMath(value) } } let test=new MyMath(); let res=test.add(12,32,21).minus(12).add(123); console.log(res.value) //原型链是实现链式调用 Number.prototype.add=function(){ let _that=this; _that=[...arguments].reduce((prev,curv)=>prev+curv,_that); return _that; } Number.prototype.minus=function(){ let _that=this; _that=[...arguments].reduce((prev,curv)=>prev-curv,_that); return _that; } let num=0; console.log(num.add(1,2,3,4).minus(1,2,2))
原文:https://www.cnblogs.com/James-net/p/13999196.html