热搜:pottle北京小瓶科技服务社区
当前位置: 北京小瓶科技服务社区 » IT技术 » nodejs 修改被引入模块的变量的问题
帖子状态  
本帖子共有 544 位阅读者, 0 个回复.
  • 回复
1条记录

admin

管理员
帖子
281 
金钱
721 
魅力
721 
威望
721 
注册
2013-04-06 
admin 发表于 2019-06-28 17:22   
nodejs 修改被引入模块的变量的问题
首先 import ... form ./a  这种import 字面理解也是静态引入 和 require include 等动态引入不同
node为了安全不允许修改引入模块a的变量的,否则你改我也改,模块a自己连自己的妈妈都不认识自己了


但是。。。

在外部重新赋值a 是不会报错的,操作,给人误以为是能修改的。


比如文件b.js 中  a.value = "新值"




但是 node 让你该 也对自己a是有保护机制的   会有一个内部 a.value 和外部 a.value  这完全是两个值。
内部永远都是内部a.value  外部如果没有外部的a.value则默认和内部的一致,如果外部已经重新定义了,对不起,从此外部的你们自己玩吧




这个虽然有点和合理,但是还是容易让开发者错乱的,比如 a.value  内部也用,外部也用,一会就自己蒙蔽吧。还是不要直接修改,添加一个setvalue()的方法吧


同时不建议把挂载的方法放到 global 上
①ide不友好
②混乱的一逼


该帖子于 2019-06-28 17:58 编辑过
  • 回复
1条记录