찾다

 >  Q&A  >  본문

node.js - nodejs requier()方法

在使用eventproxy插件的时候,
因为我是跨页面调用和监听,
demo
A.js

var eventproxy = require('eventproxy')
var ep = new eventproxy();

ep.on('test',function(data){
console.log(data)
})

b.js

var eventproxy = require('eventproxy')
var ep = new eventproxy();

ep.emit('test',"abc")

在运行的过程中,ep.on却无法打印出其值,猜测:可能是ep不是同一个对象,导致的

所以使用require包装一下

eventproxy.js

var eventproxy = require('eventproxy')
var ep = new eventproxy();
module.exports = ep;

A.js

var ep = require('../eventproxy')

// ...此处代码同上

b.js

var ep = require('../eventproxy')

// ...此处代码同上

ep.on(funciton(data){
//发现data的值已经存在了
})

PS:因为本人nodejs,基础不太好,项目所用,不是慢慢积累型学习,
所以想问下各位:
require()函数是不是一次加载?意思是,是不是类似于一个静态instanse实例,如果加载完成成,则会直接返回,不会再次加载

从实验来看,require()函数是一次加载,但是不确定,所以麻烦问下各位,谢谢!
也就是想了解下require()函数的加载机制

PHP中文网PHP中文网2768일 전556

모든 응답(1)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 13:52:12

    require函数对模块只加载一次~~

    회신하다
    0
  • 취소회신하다