<%@ 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>