调用函数内部的函数

时间:2014-02-05 22:39:58

标签: javascript

我的面向C#的braincells一直告诉我这应该有用:

var MyApp = function() {
currentTime = function() {
    return new Date();
  };
};

MyApp.currentTime();

显然它没有。但是如果一个javascript函数是一个对象,我不应该能够调用该对象上的函数吗?我错过了什么?

2 个答案:

答案 0 :(得分:2)

currentTime是全局的(在您致电myApp时设置),而不是MyApp的属性。

要调用它,而无需重新定义函数:

MyApp();
currentTime();

然而,听起来你想要:

一个简单的对象

var MyApp = {
    currentTime: function() {
      return new Date();
    };
};

MyApp.currentTime();

构造函数

var MyApp = function() {
  this.currentTime = function() {
    return new Date();
  };
};

var myAppInstance = new MyApp();
myAppInstance.currentTime();

答案 1 :(得分:1)

您可以稍微更改一下代码并使用它:

var MyApp = new (function() {
  this.currentTime = function() {
    return new Date();
  };
})();

MyApp.currentTime();

或者你可以这样做:

var MyApp = {
    currentTime: function() {
        return new Date();
    }
};

MyApp.currentTime();