如何在声明公共方法之前访问它?

时间:2013-05-28 12:51:24

标签: javascript requirejs

我知道这是矛盾的,但我需要一个头衔。 ; - )

考虑一下

define([], function() {
...
var obj = this.publicMethod(); // This line will break with error: Uncaught TypeError: Object [object global] has no method 'publicMethod' 
return {publicMethod: function() {...}}

如何访问publicMethod?

或者我构建错误了吗?

2 个答案:

答案 0 :(得分:4)

您可以在上面定义此功能:

define([], function() {
  ...

  function myMethod() {
  ...
  }
  var obj = myMethod(); 
  return {publicMethod: myMethod}
})

答案 1 :(得分:0)

将模块重组为以下内容:

define( [], function(){

  function publicMethod() {
    // code
  }

  var obj = publicMethod();


  return { 'publicMethod': publicMethod };

});