首页 > 代码库 > javascript工厂模式和构造方法

javascript工厂模式和构造方法

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="http://www.mamicode.com/">
    
    <title>My JSP ‘test3.jsp‘ starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">
    -->
    <script src="http://www.mamicode.com/js/jquery-2.1.1.min.js"></script>
    <script>
        //工厂模型
        function CreatePerson(id,name,age){
            var obj={};
            obj.id=id;
            obj.name=name;
            obj.age=age;
            obj.sayName=function(){
                return this.name;
            }
            return obj;
        } 
        var p1=CreatePerson(1,‘zhangsan‘,23);
        //alert(p1.id);
        //alert(p1.sayName());
        
        
        
        //第二种方式:构造函数式,函数的第一个字母大写(类的模板)
        
        function Person(id,name,age){
            this.id=id;
            this.name=name;
            this.age=age;
            this.sayName=function(){
                return this.name;
            }
        }
        //构造一个对象,new关键字,传递参数,执行模板代码,返回对象
        var p2=new Person(1,‘王五‘,45);
        var p3=new Person(2,‘赵六‘,23); 
        //alert(p2.sayName());
        //alert(p2===p3);         //类的概念,根据模板创建出不同的对象
        alert(p2.constructor==Person);        //true
        alert(p3.constructor==Person);        //true
        alert(p2 instanceof Person);         //true
        alert(p2 instanceof Object);         //true
        
        //创建对象的方式
        //1.当做构造函数去使用
        //var p2=new Person(1,‘王五‘,45);
        //2.普通方法的函数调用
        Person(2,‘zhangsan‘,34);       //在全局环境定义属性并复制,直接定义window对象上
        //在一个对象的作用域中调用
        var o=new Object();
        Person.call(o,2,‘zhangsan‘,34);        //把Person方法绑定到o对象上
        alert(o.name);
    </script>
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>


本文出自 “matengbing” 博客,请务必保留此出处http://matengbing.blog.51cto.com/11395502/1879238

javascript工厂模式和构造方法