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

单例模式的封装代码疑问

单例模式的封装代码疑问

慕少森 2018-11-05 13:14:16
var getSingle=function(fn){    var result;    return function(){        return result || (result=fn.apply(this,arguments));    }}这是一个单例封装代码:两个疑问: a、在匿名函数的返回中,要返回result || (result=fn.apply(this,arguments)),但是它 并没有一个判断,比如:    var obj;    if(!obj){       obj=xxx;    } 到底要返回哪个呢?还是说哪个值存在,就返回哪个? b、result=fn.apply(this,arguments)这个apply方法用在这里没看懂是啥意思,还请大神解惑? 谢谢!
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

上面使用一个变量result来保存fn的计算结果。result变量因为身在闭包中, 它永远不会被销毁. 在将来的请求中, 如果result已经赋值, 那么它将返回这个值.


查看完整回答
反对 回复 2018-12-05
  • 1 回答
  • 0 关注
  • 404 浏览
慕课专栏
更多

添加回答

举报

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