为了账号安全,请及时绑定邮箱和手机立即绑定

有没有童鞋遇到过同样的问题:JavaScript设计模式和开发实践,问题求解?怎么回事哈啊?

有没有童鞋遇到过同样的问题:JavaScript设计模式和开发实践,问题求解?怎么回事哈啊?

收到一只叮咚 2019-06-21 17:11:25
varnamespaceCache={};vara=function(namespace){varnamespace=namespace||"default";varret={c:23,d:56};returnnamespace?(namespaceCache[namespace]?namespaceCache[namespace]:namespaceCache[namespace]=ret):ret;}varb=a('klkx');console.log(b);console.log(namespaceCache);截取文章的订阅模式的一段代码:返回值永远都不会是ret,但是为什么还要这么写?
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这种写法其实是一种规范,开发中可以不这么写,但是尽量参考
无论是第一句namespace的赋值,还是return后面的语句,他们规范性都很强,考虑到了错误处理。看这里的整体代码,显得返回ret成了无用的一处,但是如果不这么写,今后项目需求更改,namespace传进来什么就是什么,那是不是return后面还要加上这种判断。所以这是一种提前的错误处理,就像建造了一栋楼,提前想好了发生地震火灾等危险时候的情况。
                            
查看完整回答
反对 回复 2019-06-21
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

照代码的意思ret会初始化namespaceCache不存在或是namespaceCache[namespace]==false情况.
                            
查看完整回答
反对 回复 2019-06-21
  • 2 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信