Javascript在自定义命名空间中运行

Javascript functions in custom namespaces

本文关键字:运行 命名空间 自定义 Javascript      更新时间:2023-09-26

可以在main函数中像这样声明两个以上的函数吗?

var jquery4u = {
    init: function() {
        jquery4u.countdown.show();
    },
    countdown: function() {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}
jquery4u.init();

和i收到以下错误:Uncaught SyntaxError: Unexpected token(在这一行"show: function() {"

countdown右侧移除function (demo)

var jquery4u = {
    init: function() {
        jquery4u.countdown.show();
    },
    countdown: {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}
jquery4u.init();

下次,使用jsFiddle来做一个演示,并点击"JSHint"按钮。

实际上,这些都不起作用。除非你让countdown成为一个对象,或者你把它的子函数当作适当的函数。原因:在倒计时下,你创建了一个对象的实例,而不是一个函数。

var jquery4u = {
    countdown: function() {
        show = function() {
            console.log('show');
        }
        hide = function() {
            console.log('hide');
        }
        jquery4u.countdown.show();
    }
}

上面的代码是一个有效的代码,所以它是可能的。遗憾的是,它不会返回任何东西。

正确的方法是这样的格式:

var jquery4u = {
    countdown: {
        show: function() {
            console.log('show');
        },
        hide: function() {
            console.log('hide');
        }
    }
}

这将工作。您可以调用:

jquery4u.countdown.show();