javascript - Javascript - 如何将显示模块拆分/划分为更小的部分?
问题描述
我想将我的模块“引擎”拆分/划分为更小的部分(并将其保存在一个文件中)。
假设我在方法“paintText()”中有很多代码——这段代码应该在单独的部分中。
这个怎么做?
我的模块“引擎”是这样的:
HTML
<button type="button" id="addText">1. Add some text</button>
<button type="button" id="countText">2. Count letters</button>
<button type="button" id="addColor">3. Add color</button>
<div id="elText"></div>
- - - - - - - - - - - - - - - - - -
<div id="elCounter"></div>
Javascript:
var Engine = (function(){
var addTextButton = document.querySelector('#addText');
var countButton = document.querySelector('#countText');
var colorButton = document.querySelector('#addColor');
var textArea = document.querySelector('#elText');
var counter = document.querySelector('#elCounter');
addTextButton.addEventListener('click', addText, false);
countButton.addEventListener('click', showCounter, false);
colorButton.addEventListener('click', paintText, false);
// Engine function
function addText( event ){
textArea.innerHTML += '<br /> add some text';
}
// Engine function
function showCounter( event ){
counter.innerHTML = 'amount of liter = ' + textArea.innerText.length;
}
// ADDITION function - separate it as submodule!!!
function paintText( event ){
/*
lot of code....
lot of code....
*/
textArea.style.backgroundColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);// random color
}
return {
paintText : paintText
}
})();
这很简单 - 您可以: 1. 添加一些文本 2. 计算字母 3. 添加背景颜色。
我试图将“paintText()”方法分离到子模块中,但我不知道如何正确地做到这一点。
错误的方法:
我创建了 2 个模块“引擎”和“颜色”,它可以工作,但是拥有 2 个模块是愚蠢的。
var Engine = (function(){
(...)
function randomColor( event ){
Color.paintText( textArea )
}
})();
//submodule
var Color = (function(){
function paintText(){
}
return {
paintText : paintText
}
})();
它知道它应该看起来像这样(将所有部分保存在一个对象中):
pseudo code:
app = {};
//engine
app.engine = function(){
... engine here
}
//additional submodule
app.color = function(){
... color here
}
//additional submodule
app.images = function(){
... images here
}
但我不知道如何使它工作!
请帮忙。
解决方案
推荐阅读
- visual-studio-code - VS Code 无法识别 Expo 项目中的模块别名
- json - 角 CLI。如何为缓存创建 tmp 文件
- python - Pyglet 没有调用 on_draw
- spring-boot - 使用 jwt 令牌作为相关 ID 是一种好习惯吗?
- r - 更改 R 中 JPEG 文件中已保存绘图的标题
- javascript - 是否可以在javascript中输入一个atoomnumber并输出一个atoomname?
- sql - 如何加入几个表并将id与另一个表中的名称列连接
- vba - 如何使用变量指示目录路径?
- python - pandas 区域中最近匹配邻居的值总和
- json - 如何从一系列加载的 json 中将threejs相机目标居中?