请稍等 ...
×

采纳答案成功!

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

想请问下关于getInstance()定义方法的问题

老师,还是不太明白为什么getInstance这个自执行函数不和其他函数一起定义在类里面呢?单独用Class.getInstance()的方法定义是因为只让这个函数被定义一次?不是很理解这个意思。。。非常感谢!

正在回答

1回答

双越 2019-06-23 16:38:21

这就是单例模式的特色。单例模式是,不显示的用 new 来声明实例,而用调用一个函数来返回单一实例,即无论调用多少次,都返回那一个实例。

如果按照你说的方式,如何实现上述的要求呢?

1 回复 有任何疑惑可以回复我~
  • 提问者 hpbrave #1
    在我回复您这条解答的过程中,我好像明白了您的意思,我本来是想把getInstance放在类里面定义,这样:
    Class SingleObject{
    			login(){
    				console.log('login...')
    			}
    			let getInstance = (function(){
    				let instance
    				return function(){
    					if(!instance){
    						instance = new SingleObject()
    					}
    					return instance
    				}
    			})()
    		}
    后来想到如果这样的话,因为SingleObject不应该被new,那就永远也调用不到getInstance这个函数了,所以才把它用SingleObject.getInstance这个方法来定义,是这样么?非常感谢!
    回复 有任何疑惑可以回复我~ 2019-06-23 16:49:33
  • 双越 回复 提问者 hpbrave #2
    是的!
    回复 有任何疑惑可以回复我~ 2019-06-23 17:49:39
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号