【发布时间】:2020-02-05 14:33:21
【问题描述】:
在模块设计模式中给出这段代码:
var HTMLChanger = (function() {
var contents = 'contents'
var changeHTML = function() {
var element = document.getElementById('attribute-to-change');
element.innerHTML = contents;
}
return {
callChangeHTML: function() {
changeHTML();
console.log(contents);
}
};
})();
HTMLChanger.callChangeHTML(); // Outputs: 'contents'
console.log(HTMLChanger.contents); // undefined
<div id="attribute-to-change"></div>
我们有这行:
console.log(HTMLChanger.contents); // undefined
现在,如果我们有一个代码可以给我们另一个结果:
console.log(HTMLChanger.contents); // 'contents'
上一行和与之相关的模块设计模式代码有什么好处?
【问题讨论】:
-
var contents的范围仅限于您的 HTMLChanger 函数——它不是静态的。 -
这两行没有区别,结果都指向
undefined?!HTMLChanger是{ callChangeHTML: function() {…} }对象,它没有.contents属性。 -
@JeremyHarris 问题已编辑
-
@Bergi 问题已编辑
-
我不明白这个问题。如果我们使用显示模块模式只显示我们想要的信息,那么只显示我们想要的信息有什么好处?
标签: javascript module modular-design