zoukankan      html  css  js  c++  java
  • requirejs源码分析: config中shim

    shim处理的源码:

    //Merge shim
                    if (cfg.shim) {
                        eachProp(cfg.shim, function (value, id) {
                            //shim 为数组类型, 很少用。
                            //一般为 对象类型
                            //Normalize the structure
                            if (isArray(value)) {
                                value = {
                                    deps: value
                                };
                            }
                           
                            // 当前配置点有exports或 init.
                            // 没有初始化过exportsFn时
                            // 进行初始化
                            if ((value.exports || value.init) && !value.exportsFn) {
                                value.exportsFn = context.makeShimExports(value);
                            }
                            shim[id] = value;
                        });
                        config.shim = shim;
                    }

    1. 从以上代码可以看出, exports的对象是由makeShimExports获得的

    makeShimExports: function (value) {
                    function fn() {
                        var ret;
                       if (value.init) {
                            ret = value.init.apply(global, arguments);
                        }
                        return ret || (value.exports && getGlobal(value.exports));
                    }
                    return fn;
                }

    从这里可以看当有配置 init方法时, 将使用init的返回值。 不存时直接获取全局中 对象名为shim设置的exports 的对象。

  • 相关阅读:
    window10+python3.7安装tensorflow--gpu tensorflow 安装
    解决plsql中文显示问号(???)问题
    卷积神经网络通俗解读
    NLP进阶之(七)膨胀卷积神经网络
    如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
    【Learning Notes】线性链条件随机场(CRF)原理及实现
    【机器学习】【条件随机场CRF-2】CRF的预测算法之维特比算法(viterbi alg) 详解 + 示例讲解 + Python实现
    条件随机场(CRF)
    条件随机场(CRF)
    条件随机场(CRF)
  • 原文地址:https://www.cnblogs.com/chencidi/p/5677773.html
Copyright © 2011-2022 走看看