我几乎是javascript编程的新手,我真的需要一些帮助/建议。
我想做什么: 我有一个函数(或对象?!),如下所示:
var svgInteraction = function (containerId) {
var svgNamespace = "http://www.w3.org/2000/svg",
htmlns = "http://www.w3.org/1999/xhtml",
mathns = "http://www.w3.org/1998/Math/MathML";
svgInteractions = {};
svgInteractions[containerId] = "I am " + containerId;
console.log(svgInteractions);
return function () {
console.log(svgInteractions);
}
};
我初始化一个这样的变量:
var svg1 = svgInteraction("container_1");
var svg2 = svgInteraction("container_2");
问题是,对于svgInteraction的每次初始化,svgInteractions对象都会重新初始化。
输出:
Object { container_1="I am container_1"}
Object { container_2="I am container_2"}
有没有办法保留旧的价值?
谢谢
答案 0 :(得分:1)
每次(svgInteractions = {}
)调用该函数时,不要将其设置为空对象。
试试这个......
var svgInteraction = (function() {
var svgInteractions = {};
return function(containerId) {
// Implementation
}
})();
此处,svgInteractions
已封装,但对svgInteraction
的所有调用也将静态。