首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Javascript 对象承继

2012-10-28 
Javascript 对象继承这周五,去百度面试Web前段开发工程师,与面试官讨论到JavaScript继承问题,由于平时使用

Javascript 对象继承

这周五,去百度面试Web前段开发工程师,与面试官讨论到JavaScript继承问题,由于平时使用较少,也没说出多少东西。遂回来差了点资料。

?

观点:在JavaScript中,function相当于Java语言定义的类。

定义方式如下:

function foo(x){//用this指定foo的成员变量xthis.x = x;//这个y是foo的私有变量,无法被继承var y = "This is a y";this.z = "A z";}

?

1.变量的继承?

?定义fooc并继承foo的成员变量:

function fooc(){foo.apply(this, arguments);//fooc自己的成员变量 this.m = "An m";}

?测试:

var fooc = new fooc("An x");alert("fooc.x: "+fooc.x +"\n"+         "fooc.y: "+fooc.y +"\n"+         "fooc.z: "+fooc.z +"\n"+         "fooc.m:"+fooc.m                  );//从测试结果可得出fooc继承了foo的x和z变量。

?

?2.方法的继承

面试中,方法的继承提到了函数原型(prototype),实现方法的继承。

//使用原型,则有foo()定义的对象都可以使用该函数。foo.prototype.hasx = function(){alert(this.x);}//采用原型式继承,则每个由fooc()定义的对象都拥有foo对象的方法。fooc.prototype = new foo();fooc.prototype.hasm = function(){alert(this.m)};

?测试:

//成功继承foo的hasx()方法fooc.hasx();fooc.hasm();

?

?Ps:在方法继承中有涉及到“原型链”。关于原型链有待进一步学习。

?

?

?

热点排行