WEB开发网
开发学院网页设计JavaScript Javascript乱弹设计模式系列(0) - 面向对象基础以... 阅读

Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现

 2010-09-14 13:34:25 来源:WEB开发网   
核心提示: 好了该创建一个html页面来试试效果了:<script type="text/javascript">function test(){var man = new Man();man.setName("Leepy");alert(man.getName

好了该创建一个html页面来试试效果了:

<script type="text/javascript">
function test()
{
  var man = new Man();
  man.setName("Leepy");
  alert(man.getName());
}
</script>
<input type="button" value="click" onclick="test();" />

最终结果为:"Leepy"的弹出框。

这里还有一点要强调,如果接口上的方法没有在继承类上得到完全实现,或者方法参数个数不匹配,那么就会提示错误。

3. 如果我要一个类继承于另一个类该怎么做呢,继续看例子,这里我再定义一个SchoolBoy(男学生)类:

function SchoolBoy(classNo, post)
{
  Man.call(this);
  this._chassNo = classNo;
  this._post = post;
}
SchoolBoy.prototype = new Man();
SchoolBoy.prototype.getName = function() {
  return "Mr " + this.name;
}
SchoolBoy.prototype.setName = function(name) {
  this.name = name + "'s";
}

其中Man.call(this);实际上是将Man中的关键字this赋值于SchoolBoy对象中去,那么SchoolBoy就拥有了Man构造函数中的name属性了。

SchoolBoy.prototype = new Man();实际上是把Man的prototype赋值给SchoolBoy.prototype,那么SchoolBoy就有了Man类中的方法。

而后面跟着的getName(),setName(),实际上是覆盖了前面继承于Man类中的方法了。

然后看看效果:

var schoolboy = new SchoolBoy("三年二班", "班长");
schoolboy.setName("周杰伦");
alert(schoolboy.getName());

最后结果为:"Mr 周杰伦's"的弹出框。

上一页  1 2 3 4 5 6 

Tags:Javascript 乱弹 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接