如何制作一个Javascript命名空间对象,它也是一个函数?

时间:2011-03-28 19:52:38

标签: javascript jquery

我在app对象中包含了所有javascript方法,因此它就像命名空间一样工作app.init,app.sort ...我希望app也可以作为一个函数工作,有点像jquery对象,所以我可以调用app()之类的东西,或调用它的一个方法{ {1}}。

我该怎么做?提前谢谢。

3 个答案:

答案 0 :(得分:3)

在Javascript中,您可以将函数视为对象,如下所示:

function app(){
  alert('called');
}

app.init = function(){
  alert('you called a method of the app');
};

app();
app.init();

答案 1 :(得分:0)

你可以这样做:

var app = function(){};

app.prototype.method = function() {
  alert("app.method has been called")
}

app.method();

答案 2 :(得分:0)

由于您使用jQuery对其进行了标记,因此您也可以这样做:

function yourMainFunction() {
  // code code code ...
}

$.extend(yourMainFunction, {
  something: "that looks like a 'namespace' definition",
  and: "so on"
});