摘要:
ts中是这样的 经过tsc test.ts编译成ES5的源码如下,可在对应生成的test.js中查看 总结:理解起来还是挺费劲的,或者说到现在都没完全理解,面向对象、原型链这一块容易忘记,当然,还是理解的不够深刻,不然很难忘掉的。 阅读全文
摘要:
function debounce(fn,delay,immediate=false){//防抖动 var timer return function () { var context = this var arg = arguments if(timer && !immediate)... 阅读全文
摘要:
看了别人的年总结,闲来无事也跟风写个自己的年总结吧。转眼一年过去了,回顾一下自己这一年的历程。回首整个18年,好像没有太多的事情可写,那就先从博客这里说起吧,18年的十月份之前,还是比较坚持写博客的,至少平均下来每周都有一篇,十月份由于换了公司,需要投入精力去适应新的工作和环境,所以懈怠了。 整个上 阅读全文
摘要:
很早之前的一篇博客写了bind的实现,是基于apply的,感兴趣的朋友看完这篇文章可以接着看看bind的实现。 apply 和 call 主要就是传参的区别。这里就不多说了,直接看代码。 实例 实现原理:其实就是把fn放在obj下面执行(后面得把obj.fn从obj上删除了,保持obj的孑然之身嘛! 阅读全文
摘要:
当浏览器发展到第四代时候,浏览器开发团队遇到了一个有意思的问题;页面的哪一部分会拥有某个特地的事件?要明白这个问题问的是什么,可以想象画在纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的不是一个圆,而是纸上所有的圆。两家公司的开发团队在这件事情上的看法是一致的,如果你单击了某个按钮,他们 阅读全文
摘要:
故事还是得从$emit说起,某一天翻文档的时候看到$emit的说明 触发当前实例上的事件?就是自身组件上的事件呗,在父子组件通信中,父组件通过props传递给子组件数据(高阶组件可以用provide和inject),由于这是单向数据流,为了保证复用组件的的时候出现数据错乱。 那么只能通过在子组件里面 阅读全文
摘要:
这几种模式是基于订阅观察者模式的,维护一个事件中心,on的时候将事件按名称存在事件中心里,称之为订阅者,然后emit将对应的事件进行发布,去执行事件中心里的对应的监听器。 第一步就是创建一个构造构造,维护一个事件中心events $on $emit $once $off 总结:其实原理非常简单,要注 阅读全文
摘要:
call,apply,bind都是用来挟持对象或者说更改this指向的,但是区别还是有的,call 传参是 fn.call(this,1,2,3) apply传参是 fn.apply(this,[1,2,3]) 而前两者是立即执行的,后者Bind是返回一个函数 var foo = fn.bind(t 阅读全文
摘要:
由于对象的赋址存储,导致日常业务中,如果把一个对象赋值给了另外一个,那么其中一个的更改会导致另外一个也变了。 所以对象的深拷贝就需要去从中打断两者之间的关联,通过深层次的循环递归将取址类的数据的值逐个转移到新对象的同名属性中。 日常的assgin,concat.sclie以及循环赋值等,只能拿来做浅 阅读全文