我正在尝试模拟此处找到的模块模式: https://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/
这是我的代码:
var RPSLS_UI = {
settings: {
playerSelections: $(".card")
},
init: function() {
this.bindUIActions();
},
bindUIActions: function() {
this.settings.playerSelections.on("click", function() {
console.log($(this));
});
}
};
我已按此顺序在HTML中包含依赖项:
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<script type="text/javascript" src="assets/js/rpsls-ui-1.0.js"></script>
<script type="text/javascript" src="assets/js/index.js"></script>
当我加载HTML时,我输入控制台:
RPSLS_UI.init();
结果:
undefined
然后我输入:
RPSLS_UI.init;
结果:
function () {
this.bindUIActions();
}
这里发生了什么?为什么init()函数未定义?
答案 0 :(得分:1)
该功能不是static
。它返回undefined
,因为没有undefined
语句。如果你想要它返回一些你可以添加一个return语句:
return
它似乎没有必要返回任何内容,因为它调用另一个将单击处理程序绑定到DOM的函数。该功能有副作用,但不会返回任何内容。