一.简单的封装
function Cat(name,color){ this.name = name; this.color = color; } Cat.prototype.type = "猫科动物"; Cat.prototype.eat = function(){alert("吃老鼠")};
对函数内部使用this变量并且绑定在实例对象上;Prototype对象被那些不变的属性和方法定义。
二.构造函数的继承
Cat.prototype = new Animal(); Cat.prototype.constructor = Cat; var cat1 = new Cat("大毛","黄色"); alert(cat1.species); // 动物
第一行:将Cat的prototype对象指向一个Animal的实例
第二行:(任何一个prototype对象都有一个constructor属性)Cat.prototype.constructor原来是指向Cat的,现在指向Animal。
三.非构造函数的继承
例如:如何让“医生”继承“中国人”
var Doctor = object(Chinese); Doctor.career = '医生'; alert(Doctor.nation); //中国
首先,在父对象上生成一个子对象。然后,加上子对象自己的属性。最后,子对象继承父对象的属性。
这里只讲述了一些简单的方法,让人能够粗略的了解到面向对象是干什么的。还有一些更深层次的内容,如果有兴趣可参考http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html进行查阅。