模块模式:功能未定义

时间:2016-04-13 05:33:43

标签: javascript jquery

我正在尝试模拟此处找到的模块模式: 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()函数未定义?

1 个答案:

答案 0 :(得分:1)

该功能不是static。它返回undefined,因为没有undefined语句。如果你想要它返回一些你可以添加一个return语句:

return

它似乎没有必要返回任何内容,因为它调用另一个将单击处理程序绑定到DOM的函数。该功能有副作用,但不会返回任何内容。