Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用公共方法之前访问它';已经申报了吗?_Javascript_Requirejs - Fatal编程技术网

Javascript 如何在使用公共方法之前访问它';已经申报了吗?

Javascript 如何在使用公共方法之前访问它';已经申报了吗?,javascript,requirejs,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() {...}} 如何访问publicMeth

我知道这是一个矛盾修饰法,但我需要一个标题

想想这个

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


还是我的结构都错了?

您可以在上面定义此函数:

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

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

您可以在上面定义此函数:

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

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

将您的模块重组为以下内容:

define( [], function(){

  function publicMethod() {
    // code
  }

  var obj = publicMethod();


  return { 'publicMethod': publicMethod };

});

将您的模块重组为以下内容:

define( [], function(){

  function publicMethod() {
    // code
  }

  var obj = publicMethod();


  return { 'publicMethod': publicMethod };

});

尝试
var obj=publicMethod尝试
var obj=publicMethod