首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有对象的javascript中自调用函数的访问函数

带有对象的javascript中自调用函数的访问函数
EN

Stack Overflow用户
提问于 2018-07-25 09:11:21
回答 1查看 363关注 0票数 1

我有相同的代码结构,并希望访问在其他文件中定义的函数-- ...how --我可以尝试使用module.exports & require吗?

app.js

代码语言:javascript
复制
var x= require('./invkFunc1');

x.display1();
x.display2();
x.display3(); 

invkFunc1.js

代码语言:javascript
复制
var x = require('./invkFunc2');

(function(x){
    //var x=  {}
    disp1 = "hello i am from display1"
    x.display1 = function(){
        console.log(disp1)
    }
    return x;
}(x));

invkFunc2.js

代码语言:javascript
复制
var x = require('./invkFunc3');

(function(x){
    //var x=  {}
    x.disp2 = "hello i am from display2"
    x.display2 = function(){
        console.log(x.disp2)
    }
   return x;
}(x));

invkFunc3.js

代码语言:javascript
复制
module.exports = 

(function(){

var x=  {}
    x.disp3 = "hello i am from display3";
    x.display3 = function(){

        console.log(x.disp3)
    }
   return x;
}());

error:

代码语言:javascript
复制
x.display1();
  ^

TypeError: x.display1 is not a function
    at Object.<anonymous> (c:\Users\prabhat.mishra\Desktop\Chrome-DOM-EXT\extension as on 2rd july 2018\SampleExtension\module.exports\app.js:39:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

在所有这些示例中,我如何访问较低级别的文件,并使某些文件中定义的函数可用于当前的所有文件。

这样我就可以像以前一样通过将这些代码放在一个文件中来实现模块化。

Working code:trying to achieve modularization from above code of below code

代码语言:javascript
复制
var x ={};



(function(){

  //  var x=  {}
        x.disp3 = "hello i am from display3";
        x.display3 = function(){

            console.log(x.disp3)
        }
    }());

    (function(){
      //  var x=  {}
        x.disp2 = "hello i am from display2"
        x.display2 = function(){
            console.log(x.disp2)
        }
        console.log("call in invkFunc2");
       //x.display3();
    }());

(function(){
    //var x=  {}
    x.disp1 = "hello i am from display1"
    x.display1 = function(){
        console.log(x.disp1)
    }
}());

x.display1()
x.display2();
x.display3();

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 09:55:08

如果你想使用“要求”,你应该先导出,你可以这样编码

app.js:

代码语言:javascript
复制
var x = require('./invkFunc1');

x.display1();
x.display2();
x.display3();

invkFunc1.js

代码语言:javascript
复制
var x = require('./invkFunc2');
var disp1 = "hello i am from display1"
x.display1 = function(){
  console.log(disp1)
}
module.exports = x;

invkFunc2.js

代码语言:javascript
复制
var x = require('./invkFunc3');
var disp2 = "hello i am from display2"
x.display2 = function(){
  console.log(disp1)
}
module.exports = x;

invkFunc3.js

代码语言:javascript
复制
var x = {}
x.disp3 = "hello i am from display3";
x.display3 = function () {
  console.log(x.disp3)
}
module.exports = x;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51515116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档