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="<%=basePath%>">
    
    <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="styles.css">
    -->
    <script src="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>
时间: 2024-10-10 10:21:17

javascript工厂模式和构造方法的相关文章

javascript工厂模式

工厂模式 设计工厂模式的目的是为了创建对象.它通常在类或者类的静态方法实现,具有下列目标: 1.在创建相似对象是执行重复操作 2.在编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接口. 通过工厂方法(或类)创建的对象在设计上都继承了相同的父对象这个思想,它们都是实现专门功能的特定子类.有时候公共父类是一个包含了工厂方法的同一个类. 代码: //父构造函数 function CarMaker(){}; CarMaker.prototype.drive = function(){

javascript工厂模式和构造函数模式创建对象

一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节,如下面的例子所示. function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.s

javascript 工厂模式

声明一个js对象, var box1=new Object();box2.name1='123';box2.age=100;box2.run=function(){ return this.box2.name1; } //再次声明一个对象 var box2=new Object();box.name1='Lee';box.age=100;box.run=function(){return this.name;+'运行中'; } //为了解决多个类似声明的问题我们可以用一种叫做工厂模式的方法,//

javascript工厂模式、单例模式

//工厂模式 function createObject(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj.fun = function(){ return this.name + this.age +"一个方法"; } return obj; } var box1 = createObject("box1",1); var box2 = createObject("

javascript——工厂模式创建对象

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type"

JavaScript设计模式一:工厂模式和构造器模式

转自:http://segmentfault.com/a/1190000002525792 什么是模式 前阵子准备期末考试,挺累也挺忙的,实在闲不得空来更新文章,今天和大家说说javascript中的设计模式. 首先呢,我们需要知道的是:模式是一种可复用的解决方案,而反模式呢就是针对某个问题的不良解决方案. js反模式常见例子 向setTimeout和setInterval传递字符串,而不是函数,这会触发eval()的内部使用. 在全局上下文中定义大量的变量污染全局命名空间 修改Object类的

[设计模式] javascript 之 抽象工厂模式

抽象工厂模式说明 1. 工厂方法模式的问题: 在工厂方法模式里,创建类都需要通过 工厂类,如果要扩展程序,就必须修改工厂类,这违背了闭包原则,对扩展开放,对修改关闭:对于设计有一定的问题. 2. 如何解决:就要用到抽象工厂模式,就是对功能类单独创建工厂类,这样就不必修改之前的代码,又扩展了功能. 3. 工厂模式其实就是对 实现同一接口的 实现类 的 统一 工厂方式创建调用,但 javascript 没有接口这号东西,所以就去掉这一层 实现,但位功能类的成员及方法都应当一样; 抽象工厂源码例子 1

JavaScript高级---工厂模式设计

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <ti

javascript 简单工厂模式

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 var Bicycle = new Interface("Bicycle",[