tag:blogger.com,1999:blog-8487749935709371325.post5594252472055019692..comments2023-08-28T02:43:23.779-07:00Comments on Advanced Programming Features: JavaScript: Реализация pattern`а SingletonC'est la viehttp://www.blogger.com/profile/10891622296508327577noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-8487749935709371325.post-54986066045597351782011-02-03T03:02:18.196-08:002011-02-03T03:02:18.196-08:00Неправильно я написал. Там создаются куча клонов о...Неправильно я написал. Там создаются куча клонов объекта. В идеале: http://bitari.blogspot.com/2006/07/js-singleton_22.htmlDmitryhttps://www.blogger.com/profile/00547444924037827780noreply@blogger.comtag:blogger.com,1999:blog-8487749935709371325.post-58995530628099505772011-02-03T00:15:01.922-08:002011-02-03T00:15:01.922-08:00А можно обойтись и без паразитных глобальных перем...А можно обойтись и без паразитных глобальных переменных:<br />function CEventController() {<br /> var instance;<br /> var actionCounter;<br /> <br /> if (!instance)<br /> instance = this;<br /> <br /> this.stopActions = function() {<br /> this.actionCounter++;<br /> }<br /> this.continueActions = function() {<br /> this.actionCounter--;<br /> }<br /> this.isStopped = function() {<br /> return this.actionCounter!=0 ? true : false;<br /> }<br /> this.getCounter = function() {<br /> return this.actionCounter;<br /> } <br /><br /> return instance;<br />}<br /><br />И вызывать соответственно:<br />CEventController().stopActions();<br />alert(CEventController().getCounter());Dmitryhttps://www.blogger.com/profile/00547444924037827780noreply@blogger.com