js面向对象的实现(example 一)
//通过函数原型链(prototype)的方式来构造对象 //通过闭包的方式来对元素类进行封装 //通过函数原型链的方式来构造对象的方法和类的继承 //通过以上步骤就可以用函数的形式来实现类的,封装,继承。重写 //在闭包中的变量和方法是不可以被外部使用的,这时候需要把闭包中的对象挂载到window对象上,这样就可以从外部访问到闭包中对象的方法和属性 //为什么挂载到window对象外部就可以访问?原因是window对象是js中的顶级对象(超全局对象),所有的js对象都是在window对象下 (function () { function Persion(name) { this._name=name; } Persion.prototype.say=function () { alert("你好啊,"+this._name); }; window.Persion=Persion;//对象挂载到window对象 }()); (function () { function Student(name) { this._name=name; } //Student类继承Persion类 Student.prototype=new Persion(); var ss=Student.prototype.say; // 子类方法重写父类方法 Student中的say方法覆盖了Persion中的say方法 Student.prototype.say=function () { ss.call(this);//通过自我回调来调用父类中的方法 alert("我很好"+this._name); }; window.Student=Student; }()); var s=new Student("小亮"); s.say();