Javascript中类的定义和继承
类的定义有3种基本方法:
1、创建并能返回特定类型的对象的函数(工厂函数)如:
function wu()
{
var w=new object;
o.a=1;
return o;
}用这种方式创建对象:var u=wu();
2、创建构造函数,用new实例化例如:
function wu()
{this.a=1;}
用这种方式创建对象: var u=new wu();
3、原型方式,利用对象prototype的属性例如:
function wu()
{}
wu.prototype.a=1;
用这种方式创建对象 var u=new wu();
类的继承
类的继承有两种
对象冒充基本原理:构造函数使用this关键字给所有的属性和方法赋值(构造函数仅仅是赋值函数),所以可以利用一种方式,在类内部直接运行赋值函数,把this关键字传递给新类:
如:
var a=function()
{
this.a=1;
this.b=1;
alert(this);
}
var b=function()
{
this.aa=a;//对a中的this 进行转换,同样的方式还有
this.aa();
delete this.aa;//要把这个中间方法删除掉,否则会在以后的操作中覆盖原来类的方法
//或者
a.call(this,arg1,arg2);
//或者
a.apply(this,[args]);
}
var ob=new b();
原型链:
基本原理:关于原型链,详见(http://www.javaeye.com/topic/53537)把超类的一个实例付给子类的prototype对象,即可把超类的固定属性和方法传递给子类,要注意一点,这种方法无法在实例化时传递参数,所以一般采用混合方式进行类的继承。
prototype.js中的类定义和继承 :
/** obsolete syntax **/
var person=Class.create();//通过class.create方法创建一个空类
person.prototype={
//把方法定义到prototype中,注意,是通过initalize方法初始化类的属性
initilazie:function(name){
this.name=name;
},
say:function(message){
return this name+":"+message;
}
}
var guy=new person('wu');
guy.say('hi');
相关文档:
引子
编程世界里只存在两种基本元素,一个是数据,一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。
数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。
你看,数据代码间的关系与物质能量间的关系有着惊人的相似。数据也是有惯性的,如果没 ......
示例:
- - - - - - - - - - - -
<body>
<input type="button" value="create" onclick="createTr();">
<table border='1' id="t" >
</table>
<input type="button" value="提交" onclick="okss();" />
</body>
<script type="text/javascript">
&nbs ......
function addLoadEvent(fun) {
var oldonload = window.onload;
if(typeof(window.onload) != 'function') {
window.onload = fun;
} else {
window.onload = function() {
oldonload();
fun();
}
}
}
//function insertAfter(newElement, targentElement)
function insertAfter(insertedNode, ......
reg = /^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$/i; ......
最近在CSDN上有人问,怎么用JS循环26个英文字母,想都没想,写下以下代码
<script type="text/javascript">
<!--
var character = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","X","Y","Z");
for(var i=0;i<25;i++)
{
alert(character[i]);
}
......