请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

单例模式

感觉在JS里面要实现一个单例直接使用一个字面量不就好了吗?
let single={
a,b
}
这个样子不就已经实现了单例了,不需要再去套用java的了吧
而模块化本身就是一个单例的对象
export {}

正在回答 回答被采纳积分+3

1回答

双越 2018-10-07 21:03:54

实现是可以实现,不过会有一些不同。

你思考一下,使用方如果视图去“非法的”修改单例的数据,在你这种方式和视频中讲的方式中,会有什么不同。

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    不是很懂这种非法的去修改是什么意思
    回复 有任何疑惑可以回复我~ 2018-10-07 23:12:33
  • 提问者 李行知 #2
    function A(){
      let a='1'
      this.b=2
      return {
        b:this.b
      }
    }
    let a=new A()
    console.log(a.a);
    console.log(a.b);
    是指类似这个样子的实现吗?通过闭包实现了私有变量,如果是这样哪确实没有办法做到,如果是使用字面值得话,但是如果是使用了模块化,则完全可以把私有变量放到对象的外部,而且如果使用ES6的class要想强制实现私有变量也是把私有变量放到外部来实现吧?而且也只限于单例模式,从某种程度上来说感觉以前的实现方式好像还要优于ES6的class
    回复 有任何疑惑可以回复我~ 2018-10-07 23:19:00
  • 双越 回复 提问者 李行知 #3
    所谓“非法的”修改,就例如,你是这个单例的开发者,给 A B C D 四个人使用,但是他们可能拿到你的单例数据之后,做一下自己的改动,你需要做的是,如果 A 修改了单例的数据,不要影响到 B
    回复 有任何疑惑可以回复我~ 2018-10-08 09:55:44

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信