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 type="application/javascript">
		//簡單原型
	function Person(){
		
	}
	Person.prototype={
		//constructor:Person,    //必須得表示原型對象的構造器
		name:'張三',
		age:21,
		say:function(){
			alert('原型函數');
		}
	};
	//ECMA5給原型從新定義構造器的方法  Object.defineProperty()
	var p1=new Person();
	//alert(p1.name);
	p1.say();
	//三個參數:1.重設構造器的對象,2.設置什麼屬性,3.options配置項
	Object.defineProperty(Person.prototype,'constructor',{
		enumerable:false,
		value:Person
	});
	//alert(Person.prototype.constructor);
	
	
	
	function Person1(){
		
	}
	var p4=new Person1();
	Person1.prototype.say=function(){alert('我是Person1的say函數');}
	p4.say();             //有結果
	
	
	
	function Person3(){
		
	}
	Person3.prototype={
		constructor:Person3,
		say:function(){alert('我是Person2的say函數');}
	};
	var p6=new Person3();
	p6.say();                  //有結果
	
	
	function Person2(){
		
	}
	var p5=new Person2();
	Person2.prototype={
		constructor:Person2,
		say:function(){alert('我是Person2的say函數');}
	};
	p5.say();                  //無結果    error由於原型對象中沒有任何方法
	//注意簡單原型的使用順序,實例對象必須在原型對象以後
	
	
	
	</script>
	
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>
相關文章
相關標籤/搜索