Javascript:如何声明非全局静态方法?

时间:2012-08-10 03:59:59

标签: javascript

如何在js中声明非全局静态方法?

foo.bar = function() {
  function testing{
    console.log("statckoverlow rocks!");
  }
  function testing2{
    console.log("testing2 funtction");
  }
}

如何调用测试功能?我是JS的新手。

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

你可能想要一个物体。

foo.bar = {
  testing: function() {
    console.log("statckoverlow rocks!");
  },
  testing2: function() {
    console.log("testing2 funtction");
  }
};

然后,请致电foo.bar.testing(),例如。

答案 1 :(得分:1)

你可以这样做:

foo.bar = (function() {
  var testing = function () {
    console.log("statckoverlow rocks!");
  };
  var testing2 = function () {
    console.log("testing2 funtction");
  };
  return {
    testing: testing,
    testing2: testing2
  };
}());

// call them
foo.bar.testing();
foo.bar.testing2();

答案 2 :(得分:1)

你的意思是:

var foo = {
    bar: {
        testing: function()
        {
            console.log("statckoverlow rocks!");
        },
        testing2: function()
        {
            console.log("testing2 funtction");
        }
    }
};


foo.bar.testing();
foo.bar.testing2();

答案 3 :(得分:0)

// Constructor
function Foo() {
  var myvar = 'hey'; // private
  this.property = myvar;
  this.method = function() { ... };
}
Foo.prototype = {
  staticMethod: function() {
    console.log( this.property );
  }
}
var foo = new Foo();
foo.staticMethod(); //=> hey