<!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>oo</title>
<script type="text/javascript">
/*定义自己的名称空间:方便引用以后自己的写的会经常使用的代码就丢这里*/
var X2={}
X2.Eval=function(code){
if(!!(window.attachEvent && !window.opera)){
//IE浏览器下execScript()函数使执行语句具有全局性,也就是说eval是有作用范围的
execScript(code);
}else{
//不是IE浏览器
window.eval(code);//其他浏览器里eval()总是在全局范围执行
}
}
var s='global';
function demo3(){
X2.Eval('var s="local"');
}
demo3();
alert(s); //测试一下X2.Eval
/*被生产对象*/
function test(){
test.staticProp++ ;
test.prototype.staticProp=test.staticProp;//staticProp静态变量,js中全局变量是仅能用类名访问的,这里保证所有对象能访问
}
test.staticProp=0;
/*工厂*/
function testFactory(name,oo){
var str="var " + name +" =new "+ oo+"()";//此语句执行产生的变量
testFactory.count++ ;//记录生产了几个对象
X2.Eval(str);
return eval(name); //返回对象name的引用,去掉的话,返回的就是未定义
}
testFactory.count=0;
/*测试执行*/
var ui = new test();
var ui2=testFactory("ui2","test");//用工厂去生产对象
alert("类的对象中察看全局变量的值"+ui.staticProp)
alert("类中全局变量staticProp的值:"+test.staticProp);
alert("工厂生产出来的对象中查看staticProp的值"+ui2.staticProp);
alert("从工厂中生产出来的有"+ testFactory.count + "个");
</script>
</head>
<body>
<table id="truckTB">
<tr>
<td colspan="3"><a>add</a></td>
</tr>
<tr>
<td> </td>
<td>
<table name="shipmentTB">
</table>
</td>
<td><a>del</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>