ajax.net 对javascript的OO强化
1
/// <reference name="MicrosoftAjax.js"/>2
//定义动物跑的接口3

World.IRunnable = function()
{ }4

World.IRunnable.prototype =
{5

run: function()
{ }6
}7
World.IRunnable.registerInterface("World.IRunnable");
1
/// <reference name="MicrosoftAjax.js"/>2

3
//ajax.net 加强javascript的面向对象支持4

5
//声明命名空间6
Type.registerNamespace("World");7
//定义类,等于创建构造8

World.Animal = function(name)
{9
this._animalName = name;10
};11
//定义类方法12

World.Animal.prototype =
{13
//获取name14

get_Name:function()
{15
return this._animalName;16
},17
//设置name18

set_Name:function(name)
{19
this._animalName = name;20
},21
//定义方法eat22

eat:function()
{23
return 'Animal eats.';24
}25
}26
//注册类27
World.Animal.registerClass("World.Animal");28

1
/// <reference name="MicrosoftAjax.js"/>2
Type.registerNamespace('World.Enum');3

World.Enum.Position = function()
{ };4

World.Enum.Position.prototype =
{5
Center:0,6
Top:1,7
Bottom:2,8
Left:3,9
Right:410
}11
World.Enum.Position.registerEnum('World.Enum.Position');
1

<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">3
<html xmlns="http://www.w3.org/1999/xhtml">4
<head runat="server">5
<title></title>6

<script type="text/javascript">
7

function pageLoad()
{8
}9
</script>10
</head>11
<body>12
<form id="form1" runat="server">13
<div> 14
<asp:ScriptManager ID="ScriptManager1" runat="server" >15

<Scripts>
16
<asp:ScriptReference Path="~/World.Animal.js" />17
<asp:ScriptReference Path="~/World.IRunnable.js" />18
<asp:ScriptReference Path="~/World.Enum.Position.js" />19
</Scripts>20
</asp:ScriptManager>21
<div id="div1"></div>22

<script language="javascript" type="text/javascript">
23
//代码测试建立的类24
var _animal = new World.Animal('some animal');25
div1.innerHTML += _animal.get_Name() + '<br/>';26
div1.innerHTML += _animal.eat() + '<br/>';27
//实现继承,Dog继承Animal类28

World.Dog = function(animalName)
{29
World.Dog.initializeBase(this, [animalName]); //用来调用父类的构造函数,并将构造父类所必需的参数name传递给父类30
};31
World.Dog.registerClass('World.Dog', World.Animal); //第二个参数实现继承关系32
//重写父类方法33

World.Dog.prototype =
{34

eat: function()
{35
return 'Dog eats.';36
}37
};38
//测试一下写的Dog类39
var _dog = new World.Dog('some dog');40
div1.innerHTML += _dog.get_Name()+'<br/>';41
div1.innerHTML += _dog.eat() + '<br/>';42

43
//定义马类,并让其继承Run,跑的接口44

World.Horse = function(animalName)
{45
World.Horse.initializeBase(this, [animalName]); //用来调用父类的构造函数,并将构造父类所必需的参数name传递给父类46
};47
//实现重写类方法eat()及接口方法run48

World.Horse.prototype =
{49

eat: function()
{50
return 'hourse eats.';51
},52

run: function()
{53
return 'hourse run.';54
}55
};56
World.Horse.registerClass('World.Horse', World.Animal, World.IRunnable); //World.Horse继承了World.Animal,实现了IRunnable接口57
//多接口实现方式World.Horse.registerClass('World.Horse', World.Animal, World.IRunnable1,World.IRunnable2,World.IRunnable3,World.IRunnable4
.);58
//测试马类,看他是否会吃会跑59
var _horse = new World.Horse('some hourse');60
div1.innerHTML += _horse.get_Name() + '<br/>';61
div1.innerHTML += _horse.eat() + '<br/>';62
div1.innerHTML += _horse.run() + '<br/>';63
//看看枚举类型的Left值64
div1.innerHTML += World.Enum.Position.Left + "<br/>";65
//反射支持66
//某类型是否实现接口67
var _isImplementer = World.Horse.implementsInterface(World.IRunnable); //Horse类型是否实现了IRunnable接口68
div1.innerHTML += _isImplementer + '<br/>';//true69
_isImplementer = World.Dog.implementsInterface(World.IRunnable); //Dog类型是否实现了IRunnable接口70
div1.innerHTML += _isImplementer + '<br/>';//false71
//验证是否继承自某个类型72
var _isDerived = World.Dog.inheritsFrom(World.Animal);73
div1.innerHTML += _isDerived + '<br/>';//true74
_isDerived = World.Dog.inheritsFrom(World.Horse);75
div1.innerHTML += _isDerived + '<br/>';//false76
//判断某个类型是否为类77
var _isClass = Type.isClass(World.Dog);78
div1.innerHTML += _isClass + '<br/>';//true79
_isClass = Type.isClass(World.IRunnable);80
div1.innerHTML += _isClass + '<br/>';//false81
_isClass = Type.isClass(World.Enum.Position);82
div1.innerHTML += _isClass + '<br/>';//false83
var _newDog = new World.Dog('newDog');84
_isClass = Type.isClass(_newDog);85
div1.innerHTML += _isClass + '<br/>';//false86
//判断是否为接口87
div1.innerHTML += Type.isInterface(World.IRunnable)+'<br/>';//true88
div1.innerHTML += Type.isInterface(World.Enum.Position) + '<br/>'; //false89
//判断是否为命名空间90
div1.innerHTML += Type.isNamespace(World) + '<br/>'; //true91
div1.innerHTML += Type.isNamespace(World.Horse) + '<br/>'; //false92
//判断某个对象是否实现了接口93
div1.innerHTML += World.IRunnable.isImplementedBy(_newDog)+'<br/>';//false94
div1.innerHTML += World.IRunnable.isImplementedBy(_horse) + '<br/>'; //true95
//判断某对象是否为指定类或子类的实例96
div1.innerHTML += World.Dog.isInstanceOfType(_newDog) + '<br/>';//true97
div1.innerHTML += World.Animal.isInstanceOfType(_dog) + '<br/>';//false98
div1.innerHTML += World.Dog.isInstanceOfType(_horse) + '<br/>';//false99
</script>100
</div>101
</form>102
</body>103
</html>104

浙公网安备 33010602011771号