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');
相关文档:
<script>
var i = 0;
function insertTr(obj)
{
var tr1 = tb.insertRow(obj.rowIndex+1);
  ......
引子
编程世界里只存在两种基本元素,一个是数据,一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。
数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。
你看,数据代码间的关系与物质能量间的关 ......
在上传操作中,经常会遇到要求指定上传文件的格式,下面的实例是在客户端通过JavaScript验证上传图片格式为jpg/gif/png
<html>
<head>
<mce:script language="JavaScript" type="text/JavaScript"><!--
var img=null;
function checkPic(picForm){
var location=picForm.pic.v ......
删除行
<script>
function del(obj)
{
obj.parentNode.parentNode.removeNode(true);
}
</script>
<body& ......
原文:《Speeding up JavaScript: Working with the DOM》
作者: KeeKim Heng, Google Web Developer
在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM——或者说文档对象模型——来完成的,而我们的实现方式会影响到应用的响应速度。
DO ......