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();

  

原文地址:https://www.cnblogs.com/wujindong/p/5955212.html