zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    Django数据库配置
    Django视图函数
    Django环境搭建和项目创建
    mysql5.7的安装
    在VS中手工创建一个最简单的WPF程序
    1.1 从UNIX到Linux的发展历程
    2 Class类
    1 反射
    8.6 GOF设计模式四: 策略模式… Strategy Pattern
    8.5 GOF设计模式四: 观察者模式Observer
  • 原文地址:https://www.cnblogs.com/yingsmirk/p/2406898.html
Copyright © 2011-2022 走看看