3个JavaScript文件互相交谈

时间:2014-10-01 22:03:58

标签: javascript

3个单独的JavaScript文件如何相互通信"在浏览器之外?有人可以解释这3个不同的JS文件如何使用彼此的代码吗?如何避免循环依赖等?

foo.js bar.js mud.js

我知道有类似" var foo = require(./ foo.js)"和" module.exports"但是现在它没有多大意义。

2 个答案:

答案 0 :(得分:1)

您可以使用Node.js http://nodejs.org/

在浏览器之外使用Javascript

您可以拥有'父级'或'顶级'javascript文件执行'WebWorkers'。父js文件可以来回与WebWorker进行通信。要让Web工作人员相互通信,他们必须通过父javascript文件https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers

进行通信

答案 1 :(得分:1)

使用node.js作为JS环境时,使用多个文件的方式如下:

文件1,一个人类:

// person.js
var Person = function(name) { this.name = name; }
Person.prototype.greet = function() { console.log("Hello, "+ this.name) }
module.exports = Person;

文件2,一只狗:

// dog.js
var Dog = function(name) { this.name = name; }
Person.prototype.woof = function() { console.log(this.name + " barks") }
module.exports = Dog;

文件3,一个需要Person类

的程序
// greet_sue.js
var Person = require('./person.js');
var Dog = require('./dog');

var sue = new Person("Sue");
sue.greet(); // Hello, Sue

var dog - new Dog("Fido");
dog.woof(); // Fido barks

在命令行运行程序:

$ node greet_sue.js
Hello, Sue
Fido barks

  

3个单独的JavaScript文件如何相互通信"在浏览器之外?

使用node.js

  

有人可以解释这三种不同的JS文件如何互相使用代码吗?

某些文件会将对象和值分配给module.exports,当该文件为require()时,可以将其导入其他文件中。

  

如何避免循环依赖等?

良好的计划结构。如果您已经很好地设计了您的计划,那么这不是一个问题。在我的示例中,Person不应该关心如何使用问候语。它简单提供了一种问候人的方式。 greet_sue.js文件负责管理问候语。

也就是说,依赖管理很难,并且是一个并非node.js特有的复杂问题。