记录javascript模块名称

记录javascript模块名称,javascript,jquery,Javascript,Jquery,我希望能够记录我的模块初始化,看看会发生什么。是否有方法获取模块名称空间并将其记录到控制台 (function($, bis, window, document, undefined) { "use strict"; //other app code bis.library = bis.library || function(module) { $(function() { if (module.init) {

我希望能够记录我的模块初始化,看看会发生什么。是否有方法获取模块名称空间并将其记录到控制台

(function($, bis, window, document, undefined) {
    "use strict";
    //other app code
    bis.library = bis.library || function(module) {
        $(function() {
            if (module.init) {
                module.init();
                //how can I make it log the module namespace
                console.log('module' + module.toString() + 'initialized');
            }
        });
        return module;
    };

    //other app code
})(jQuery, window._bis = window._bis || {}, window, document);
我的模块定义示例

(function($, bis, window, document, undefined) {
    "use strict";
    var common = bis.common,
        urls = bis.urls,
        defaults = bis.defaults,
        createWorklist = bis.createWorklist,
        editWorklist = bis.editWorklist,
        editMoveBoxesWorklist = bis.editMoveBoxesWorklist;

    bis.worklist = bis.worklist || bis.library((function() {
        // module variables
        var init = function() {
            //module init code
        };

        //other module code

        return {
            init: init
        };
    })());
})(jQuery, window._bis = window._bis || {}, window, document);​

因此,我希望console.log行记录以下文本“module bis.worklist initialized”,例如。

我按照Pointy的建议做了。我已经在模块中添加了一个name属性,只需使用

console.log(module.name);

您不能这样做,因为没有与模块包装器函数关联的名称。当然,您可以扩展API,以便模块可以显式传递标识字符串。我之所以这样问,是因为我的调试器在调试过程中悬停init方法时知道名称空间,所以我认为这应该是可能的。调试器可以使用源代码执行静态分析。这种信息对于JavaScript代码本身是不可用的。