问题提出
现在有两个DAO类,我希望他们能互相访问,生成实例,但是相互require()
会导致循环引用,出现空对象
User.class.coffee
Group=require './Group.class.js'
class User constructor:(@uid)->
...
getGroups:(cb)-> db.query 'XXXXX',(err,rows)-> cb null,(new Group row.gid for row in rows)
module.exports=User
Group.class.coffee
User=require './Group.class.js'
class Group
constructor:(@gid)->
...
getAdmin:(cb)->
db.query 'xxxxxx',(err,uid)->
cb null,new User uid
module.exports=Group
上面这样的写法,出现了循环引用,User,Group中至少有一个会出现空对象
我的解决方法
使用三个文件,第三个文件为注入文件,为类文件原型添加方法
User.class.coffee
class User constructor:(@uid)->
......
Group.class.coffee
User=require './Group.class.js'
class Group
constructor:(@gid)->
...
getAdmin:(cb)->
db.query 'xxxxxx',(err,uid)->
cb null,new User uid
module.exports=Group
User.inject.coffee
User=require '../User.class.js' Group=require '../Group.class.js'
User.prototype.getGroups:(cb)->
db.query 'XXXXXXX',(err,rows)->
cb null,(new Group row.gid for row in rows)
有什么更好的解决方法,请联系我,谢谢。
转载于:https://www.cnblogs.com/ireul/p/3404906.html