扩展 JavaScript 通用模块(UMD 文件)中定义的类的正确方法是什么?
What is the correct way to extend a class defined in a JavaScript Universal Module (UMD file)
我第一次尝试为log4javascript自定义日志"appender"。它可以工作,但它卡在原始代码中。 我想将我的扩展保存在一个单独的文件中,但我对其余代码的理解不够好,不知道如何提取它。
我知道log4javascript以某种方式尊重UMD模式,但这就是我所得到的。
(虽然不应该是...
(function(root, factory){})(this, function{})...
。而不是。。。
(function(factory, root){})(function{})
????*)
(function(factory, root) {
if (typeof define == "function" && define.amd) {
define(factory);
}
else if (typeof module != "undefined" && typeof exports == "object") {
module.exports = factory();
}
else {
root.log4javascript = factory();
}
})(function() {
:
Here be dragons . . .
:
/* -- - this code works from here, but not if I - -- */
/* -- - try to move it out to a file of its own - -- */
function MyAppender() {}
MyAppender.prototype = new Appender();
MyAppender.prototype.layout = new SimpleLayout();
MyAppender.prototype.append = function(loggingEvent) {
alert( this.getLayout().formatWithException(loggingEvent) );
};
MyAppender.prototype.toString = function() {
return "MyAppender";
};
log4javascript.MyAppender = MyAppender;
/* -- - - - - - - - - - - - -- */
:
. . . and sea monsters
:
return log4javascript;
}, this);
如何在单独的文件中对追加器进行子类化?
自从几个小时前发布以来,我一直在阅读更多关于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();
相关文章:
- 如果 JS 中的函数是一流的,那么在定义它们之前允许调用它们是什么
- 为Google闭包类定义属性的首选方式是什么
- 定义js函数时冒号的含义是什么
- 什么'获取数组的已定义部分的最快方法是什么?JS
- 在jQuery方法中编写自定义属性的正确语法是什么
- 检查链接对象形式中未定义属性的最佳实践是什么
- 当生成正态分布的随机值时,定义范围的最有效方法是什么
- 使用方法和属性定义javascript对象的最佳方法是什么?(如果可能以本机方式)
- 在 aurelia 中使用 repeat.for 绑定自定义元素的正确方法是什么
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- 在 popState 定义的上下文中,浏览器活动历史记录的含义是什么?
- 在ES2015中定义一个类,构造函数方法是什么以及为什么它是必不可少的
- ECMAScript 中的内部属性定义是为了什么
- 当未定义默认导出时,从“模块”导入模块是什么,为什么它与将 * 导入为模块不同
- 在主干模型中定义实例变量的正确方法是什么
- 在循环中定义函数的最佳方法是什么?- JavaScript
- 由“var”全局定义的变量是什么范围
- 此数据的格式是什么?是自定义格式吗?
- 递归的定义是什么
- =="的对象相等的标准定义是什么?