扩展JavaScript通用模块(UMD文件)中定义的类的正确方法是什么

扩展JavaScript通用模块(UMD文件)中定义的类的正确方法是什么,javascript,amd,log4javascript,Javascript,Amd,Log4javascript,我第一次尝试使用的自定义日志“appender”。它可以工作,但它被困在原始代码中。我想将扩展名保存在一个单独的文件中,但我对rest代码的理解不够透彻,不知道如何提取它 我知道log4javascript在某种程度上尊重UMD模式,但这就是我所知道的 (虽然不应该是 (函数(根,工厂){})(这个,函数{}) …而不是 (函数(工厂,根){})(函数{}) …??????*) 如何在一个单独的文件中对Appender进行子类化?自从几个小时前发布以来,我一直在阅读更多关于UMD、AMD、req

我第一次尝试使用的自定义日志“appender”。它可以工作,但它被困在原始代码中。我想将扩展名保存在一个单独的文件中,但我对rest代码的理解不够透彻,不知道如何提取它

我知道log4javascript在某种程度上尊重UMD模式,但这就是我所知道的

(虽然不应该是

(函数(根,工厂){})(这个,函数{})

…而不是

(函数(工厂,根){})(函数{})

…??????*)


如何在一个单独的文件中对Appender进行子类化?

自从几个小时前发布以来,我一直在阅读更多关于UMD、AMD、requireJS等的信息

主要的问题似乎是名称空间的纯度

明白了这一点,我所要做的就是解决名称空间问题。事实证明,这非常简单:它就在代码中!嗯!:

log4javascript.MyAppender=MyAppender

而不是

MyAppender.prototype = new Appender();
MyAppender.prototype.layout = new SimpleLayout();
。。。我只是不得不做

MyAppender.prototype = new log4javascript.Appender();
MyAppender.prototype.layout = new log4javascript.SimpleLayout();

AMD支持是一个非常新的补充,因为有几个人要求它,而增加与模块加载器的兼容性的代价是额外的复杂性。我会很快回答,一旦我找到了答案:)可能长期的答案是我把AMD和非AMD文件放回未来的版本中。哦!你就是写log4javascript的蒂姆·唐恩!!我很荣幸!你可能有兴趣知道我刚刚成功地将log4javascript嵌入到谷歌应用程序脚本并登录到谷歌电子表格。如果愿意,您可以克隆此文件夹并将其弄乱:当然,您需要搜索“var logSheet=SpreadsheetApp.openById”,并用您自己的副本密钥替换电子表格密钥。如果你有问题,请告诉我。
MyAppender.prototype = new log4javascript.Appender();
MyAppender.prototype.layout = new log4javascript.SimpleLayout();