Javascript返回功能

czu*_*awo 0 javascript jquery

我想创建一些功能很少的javascript对象,但我得到一个例外

undefined不是一个函数

JS:

 var Buses = null;
 $(function () {
        Buses = function() {
            return {
                Test: function () {
                    console.log('test public function');
                }
            }
        }
 });
Run Code Online (Sandbox Code Playgroud)

HTML:

<button onclick="Buses.Test()">test</button>
<script type="text/javascript" src="js/buses.js" ></script>
Run Code Online (Sandbox Code Playgroud)

怎么了?

Jin*_*lcl 5

您的Buses变量是一个返回函数的函数,所以在HTML中它必须像这样调用

<button onclick="Buses().Test()">test</button>
Run Code Online (Sandbox Code Playgroud)

当你使用jQuery时,更好的解决方案是给按钮一个然后在javascript中分配点击处理程序:

var Buses = null;
$(function () {
    Buses = function() {
        return {
            Test: function () {
                alert('test public function');
            }
        }
    }

    $("#button").click(function() {Buses().Test()});
});
Run Code Online (Sandbox Code Playgroud)

这是小提琴http://jsfiddle.net/fe5hxo60/