JavaScript 理解递归调用代码清理中的上下文,没有“with”关键字
javascript understanding context in recursive call code cleanup without "with" keyword
我正在尝试以以下方式在此处重新创建以下功能代码,而无需本文中指出的"with关键字"
function imports(from, as, exportInto) {
exportInto = exportInto || {};
var ctx = {
exports: {},
imports: function(from, as) {
imports(from, as, ctx);
}
};
from(ctx);
exportInto[as] = ctx.exports;
};
var logger = (function(args) {
args.exports = {
print: function(res) {
console.log(res);
}
}
});
var calculator = (function(args) {
args.imports(logger, 'logger');
args.exports = {
add: function(a, b) {
logger.print(a + b);
}
}
});
var app = (function(args) {
args.imports(calculator, 'calculator');
calculator.add(2, 3);
});
imports(app, 'app');
但是,在运行calculaltor.add函数时找不到,我试图调试问题,但我无法理解该错误。
编辑
此代码的目的是将以前的上下文导出返回到导入中。即args.imports(calculator, 'calculator');
将被替换为
calculator.add = function(a, b) {
logger.print(a + b);
}
类似于我试图模仿的这条线
编辑 2
此外,此代码的目的是在单例文件结构中具有类似的结构。
function imports(from, as, exportInto) {
exportInto = exportInto || {};
var ctx = {
exports: {},
imports: function(from, as) {
imports(from, as, ctx);
}
};
from(ctx);
exportInto[as] = ctx.exports;
};
var logger = (function(args) {
args.exports = {
print: function(res) {
console.log(res);
}
}
});
var calculator = (function(args) {
args.imports(logger, 'logger');
args.exports = {
add: function(a, b) {
args.logger.print(a + b);
}
}
});
var app = (function(args) {
args.imports(calculator, 'calculator');
args.calculator.add(2, 3);
});
imports(app, 'app');
相关文章:
- JavaScript:如果没有'这'关键字
- 在没有'选择'关键字
- 为什么在没有 var 关键字的情况下分配给变量时会出现引用错误
- JavaScript 理解递归调用代码清理中的上下文,没有“with”关键字
- 此代码中发生了什么,如果没有“with”关键字,以下内容的基本实现是什么
- javascript初始化一个没有new关键字的对象
- 我没有'我不明白为什么;这个“;关键字dons'I don’我没有预料到的那么管用
- 制作一个没有新关键字的javascript淘汰视图模型
- 我的用户脚本没有'我不工作;我不知道为什么(过度使用var关键字)
- 为什么实例没有't在没有prototype关键字的情况下继承添加到构造函数的属性
- 没有理解下面的关键字'+ searchValue +“;在jquery代码中
- setTimeout函数中的关键字,该函数嵌套在on()方法下.但这并没有奏效
- 有没有可能在没有return关键字的情况下解析async函数?
- 有没有关键字'大写'在javascript
- 为什么JavaScript中的参数前面没有var关键字?
- 如果我没有在回调中使用' this '关键字,我应该使用可选的context参数吗?
- 没有new关键字或.create方法的对象()
- 如果没有“函数”,这个对象方法定义如何工作?关键字
- 重定向到特定的url基于用户输入,但如果没有预定义的关键字存在搜索网站
- 为什么new关键字没有创建Router类的唯一实例?