在javascript中使用单例模式,出现问题。
发布网友
发布时间:2022-04-20 05:22
我来回答
共4个回答
热心网友
时间:2023-05-28 22:06
好像 似乎 大概 是这个样子滴 匿名函数问题:
把 window["lib"]["lognMole"] =(function(){code})();
改成window["lib"]["lognMole"] =(function(){code});
不要最后那个括号,最后那个括号表示执行该返回的函数;
你只是让window.lib.lognMole对该函数的引用,而不是引用执行完了的结果。
热心网友
时间:2023-05-28 22:07
return 后不要直接换行,js程序行结束是不需要分号的,要换行了,就直接return了,也就是return undefined了,改成这样
return {
getInstance: function () {
if (!uniqueLogn) {
uniqueLogn = constructor();
}
}
}
热心网友
时间:2023-05-28 22:07
你这个代码不止是换行的问题,各种问题都有。附上代码:
<script type="text/javascript">
window["lib"] = {};
window["lib"]["lognMole"] = (function () {
var uniqueLogn = 1;
var test = 0;
function constructor() {
var lognHtml = "<div id='light' class='white_content'>rerr</div>";
return lognHtml;
}
return {
getInstance: function () {
if (uniqueLogn) {
return uniqueLogn = constructor();
}
}
}
//alert(1);
})();
var contentDiv = document.createElement('div');
document.body.appendChild(contentDiv); //把div添加到body
contentDiv.innerHTML = lib.lognMole.getInstance();
</script>
热心网友
时间:2023-05-28 22:08
return后不要换行