<!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>