<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html xmlns="http://www.w3.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js模拟面向对象【也有特别的地方】 </title>
</head> <body>
测试:<input id="test" type="text" value="test"/> <script language="javascript" type="text/javascript"> var fn1 = new function(){ //@对象属性 this.config = { c1:'1', c2:'2' }; //@私有方法 function $(id){ return document.getElementById(id); } //@公有方法 this.GetValue = function(id){ return $(id).value; } };
var selfObj = new function() { var fn = function() { }; fn.prototype = { GetValue: function(id) { return document.getElementById(id).value; } }; //@公有方法 this.GetValue2 = function(id){ return new fn().GetValue(id); } //@注意:此时返回的是一个fn对象,所以GetValue2这个公有方法不生效 return new fn(); };
alert(fn1.GetValue('test')); alert(fn1.config.c1);
//返回出错:对象不支持此属性或方法 alert(selfObj.GetValue2('test')); //正常执行 alert(selfObj.GetValue('test'));
</script> </body> </html>