`
axiheyhey
  • 浏览: 5198 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Javascript带有私有属性的单例模式

 
阅读更多
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <script>
        	var singleton = (function(){
			    var unique;
			    return {
			    	getinstance: function (){
				        if(!unique){
				            unique = construct();
				        }
				        return unique;
				    }
			    }
			    function construct(){
			        var _firstname, _lastname;
			        function _getFullName(){
			        	return _lastname + ' ' + _firstname;
			        }
			        return {
			            showFullName: function(){
			            	alert(_getFullName());
			            },
			            setFirstName: function(firstname){
			            	_firstname = firstname;
			            },
			            setLastName: function(lastname){
			            	_lastname = lastname;
			            }
			        };
			    }
			})();
			var ins1 = singleton.getinstance(),
				ins2 = singleton.getinstance();
			alert(ins1 === ins2);
			ins1.setLastName('王');
			ins1.setFirstName('强');
			ins1.showFullName();
			ins2.showFullName();
        </script>
    </body>
</html>
分享到:
评论

相关推荐

    Pro JavaScript Design Patterns_with_code

    JavaScript设计模式是Web开发中的重要概念,它是一种在特定情境下解决编程问题的标准化方法,有助于提高代码的可维护性、可扩展性和可重用性。"Pro JavaScript Design Patterns_with_code"这个资源显然包含了关于...

    Javascript Design Patterns

    - **带有原型的构造器**:通过扩展构造函数的原型对象,实现属性和方法的共享。 - **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。 - **模块模式**:封装一组相关功能,提供公共接口,隐藏内部实现...

    javascript-patterns:JavaScript模式,原型模式和带有示例实现的实验

    JavaScript模式是一种在编程实践中形成的可重复使用的设计方案,...不断地学习和实践这些模式,将有助于成为一个更出色的JavaScript开发者。记住,设计模式不是银弹,但它们确实为解决复杂问题提供了宝贵的工具和思路。

    百度面试题汇总(java)

    3. **设计模式的应用**:例如工厂模式、单例模式、策略模式等。 #### 三、Web前端相关 1. **Java集合类及其应用场景**:如List、Set、Map等集合类的使用场景。 2. **JSP与Servlet的区别**:JSP主要用于动态页面...

    蘑菇街(15问).pdf

    标签用于加粗文本,但不带有任何额外的语义含义,仅用于视觉上的加粗效果。标签除了具有加粗的功能之外,还表示这部分内容的重要性。虽然两者在浏览器中呈现的效果相同,但从语义上来说,是用来表达重要性,而仅仅是...

    Flex试题 .txt

    如何显示带有图片的Alert对话框? Flex的Alert类默认不支持直接展示图片,但可以通过自定义Alert组件或者使用更高级的弹出窗口类(如ModalWindow)来实现这一需求。 ### 17. 解释Flex的单例模式和静态模式的区别...

    utils:一些工具类累计

    模块模式则允许创建私有变量和方法,同时暴露公共接口,有助于代码组织和避免命名冲突。 CSS Reset,又称为CSS重置或CSS初始化,是Web开发中的一个关键实践。它旨在消除不同浏览器之间的默认样式差异,确保元素在...

    Java就业面试实用大全

    - **设计模式**:单例、工厂、观察者、装饰者、代理等常见设计模式的应用场景和实现。 - **JVM优化**:内存调优,JVM参数设置,垃圾收集器的选择。 - **Java 8及以后的新特性**:Lambda表达式,Stream API,...

    GOF-TYPESCRIPT:GOF-设计图案-带类型脚本

    在TypeScript中,可以使用模块系统或者静态私有属性配合构造函数来实现单例。 2. **工厂模式**:提供一个创建对象的接口,但不指定具体的类。在TypeScript中,可以使用抽象工厂类或工厂函数来实现。 3. **抽象工厂...

    Kotlin 语言文档

    - **嵌套类**:在另一个类的内部定义的类,可以访问外部类的私有成员。 - **枚举类**:用于定义一组固定的常量,可以包含方法和构造函数。 - **对象表达式和对象声明**:用于创建单例对象或匿名类。 - **委托**:...

    中级程序员必备面试题.txt

    #### 用JDBC编写带有事务处理的代码示例 使用JDBC进行数据库操作时,事务管理是非常重要的。以下是一个简单的示例: ```java Connection conn = null; try { // 建立连接 conn = DriverManager.getConnection(DB...

Global site tag (gtag.js) - Google Analytics