• JS创建对象的几种模式


    1、工厂模式

    考虑到javascript无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节

    	    <script type="text/javascript">
    	    	function createPerson(name,age,job){
    	    		var o = new Object();
    	    		o.name = name;
    	    		o.age = age;
    	    		o.job = job;
    	    		o.sayName = function() {
    	    			alert(this.name);
    				};
    				return o;
    	    	}
    	    	
    	    	var person1 = createPerson("zy","21","web devoloper ");
    	    	var person2 = createPerson("smirk","21","UI ");
    	    	
    	    	person1.sayName();
    	    	person2.sayName();
    	    </script>
    

      工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)

    2、构造函数模式

    javascript中的构造函数可用来创建特定类型的对象,可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。

    	    <script type="text/javascript">
    	    	function Person(name,age,job){
    	    		this.name = name;
    	    		this.age = age;
    	    		this.job = job;
    	    		this.sayName = function(){
    	    			alert(this.name);
    	    		};
    	    	}
    	    	
    	    	var person1 = new Person("zy","21","web devoloper ");
    	    	var person2 =  new Person("smirk","21","UI ");
    	    	
    	    	person1.sayName();
    	    	person2.sayName();
    
    	    </script>
    

     按照惯例,构造函数始终都应该以一个大写字母开头。

    以这种方式调用构造函数实际上会经历一下四个步骤:

     (1)创建一个新对象;

     (2)讲构造函数的作用域赋给新对象

     (3)执行构造函数中的代码(为这个新对象添加属性)

     (4)返回新对象

    前面例子的最后,person1和person2分别保存着Person的一个不同的实例,这两个对象都有一个constructor属性,属性指向Person

    alert(person1.constructor == Person);

  • 相关阅读:
    myeclipse8.6注册码
    hibernate用注解(annotation)配置sequence
    MyEclipse注释配置
    JAVA 单选样式编写
    .Net中的几种异步模式
    C#并发编程——并发编程技术
    《CLR via C#》之线程处理——任务调度器
    《CLR via C#》之线程处理——线程池与任务
    《CLR via C#》之线程处理——协作式取消和超时
    《CLR via C#》之线程处理——线程基础
  • 原文地址:https://www.cnblogs.com/yingsmirk/p/2406898.html
Copyright © 2020-2023  润新知