zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q

     
    简单介绍BaseNode的实现。
     
     
    1. You cannot create a node outside a LazyModule
     
     
    LazyModule.scope在LazyModule对象中定义:
     
    在LazyModule类中赋值:
     
    那么这里的“outside a LazyModule”中的LazyModule指的应该是LazyModule类,而不是LazyModule伴生对象。
     
    因为LazyModule对象的用法,所以这里很容易误解:
     
    可以从两个方面排除:
     
    a. LazyModule伴生对象只有一个,应该用“outside the LazyModule(...)”,而不是"outside a LazyModule";
     
    b. LazyModule对象工厂方法定义如下:
     
    这里的bc是LazyModule的子类,而不是BaseNode。所以LazyModule伴生对象实际上与BaseNode的实例化无关。
     
     
    所以正确的方法是:
    NullIntSource继承自LazyModule类,所以在实例化NullIntSource时,首先执行LazyModule的构造方法,为LazyModule.scope赋值;
     
    然后在NullIntSource中创建intnode成员,执行BaseNode的构造方法,判断LazyModule.scope是否Defined。
     
     
    2. add to lazyModule.nodes
     
    把当前正在实例化的BaseNode,加入到当前的lazyModule中。
     
    使用index记录当前节点在lazyModule.nodes中的序号:
     
    3. serial
     
    定义于BaseNode伴生对象中:
     
    用于记录当前节点在所有已创建过的节点中的序号:
     
    4. parents
     
    lazyModule是当前节点的parents之一。
     
    5. name
     
    全路径名称(full qualified name),包括从顶层父节点逐层到本节的的所有名称:
     
    6. omitGraphML
     
    是否要画在GraphML图中:
    如果没有输入输出连接,而是一个孤立的节点则忽略。
     
    7. wirePrefix
     
    使用正则表达式调整节点名称的格式。
     
    8. inputs/outputs
     
    记录渲染过的输入和输出连接信息:
     
    9. sinkCard/sourceCard
     
    记录输入端星号("*")的个数和输出端星号的个数。
     
    10. flexes
     
    记录BIND_FLEX连接的对端连接的节点信息。
     
    11. instantiate
     
    节点实例化方法:
     
  • 相关阅读:
    element-ui表格数据为空及数据使用html包裹的实现
    Vue 生命周期深入
    element-ui使用Radio单选表格行
    跨浏览器事件封装
    fontsize.js
    js使用Canvas对象绘制圆环
    银行卡信息生成
    数组中对象的去重
    es6冻结对象及其属性
    clip属性
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10466157.html
Copyright © 2011-2022 走看看