zoukankan      html  css  js  c++  java
  • vue3源码阅读

    看源码时候做的笔记-----------

    1.targetMap 为什么是 weakMap,WeakMap 和 Map有什么区别?

    Map 是由 key 数组和 value 数组构成,遍历时,先遍历 key, 找到 index , 然后再从 value 数组取值。两个很大的缺点:

      a) 赋值和搜索操作都是 O(n) 的时间复杂度( n 是键值对的个数),因为这两个操作都需要遍历全部整个数组来进行匹配。

      b) 是可能会导致内存泄漏,因为数组会一直引用着每个键和值。这种引用使得垃圾回收算法不能回收处理他们,即使没有其他任何引用存在了。

    WeakMap 对象是一组键/值对的集合,其中的键是弱引用的,因为是弱引用,所以key不可被枚举,如果key 是可枚举的话,其列表将会受垃圾回收机制的影响,从而得到不确定的结果。其键必须是对象,而值可以是任意的。

      a) WeakMap 持有的是每个键对象的“弱引用”,而弱引用的对象,垃圾回收机制不考虑对该对象的引用,这意味着在没有其他引用存在时垃圾回收能正确进行。

      原生 WeakMap 的结构是特殊且有效的,其用于映射的 key 只有在其没有被回收时才是有效的。

    effec.ts 中,Dep是个set,KeyToDepMap 是个 Map,targetMap 是个WeakMap。

    2.Reflect 和 Object 有什么区别?

  • 相关阅读:
    前端面试题目汇总摘录(HTML 和 CSS篇)
    The Road to learn React书籍学习笔记(第三章)
    The Road to learn React书籍学习笔记(第二章)
    算法复习:动态规划
    算法复习:回溯法
    算法复习:图
    算法复习:二叉树专题
    算法复习:最短路Dijkstra
    算法复习:BFS与DFS
    算法复习:标记数组 / 数组
  • 原文地址:https://www.cnblogs.com/catherinezyr/p/13225608.html
Copyright © 2011-2022 走看看