javascript面向对象(1)

封装、继承、信息的隐藏

案例1:


function People(){

}
People.prototype.say = function(){
    alert("hello");
}

function Student(){

}

// Student继承People
Student.prototype = new People();
var s = new Student();
s.say();

javascript面向对象(1)_第1张图片

案例2:


function People(){

}
People.prototype.say = function(){
    alert("hello");
}

function Student(){

}

// Student继承People
Student.prototype = new People();

// Student自己的say方法
Student.prototype.say = function(){
    alert("stu-hello");
}

var s = new Student();
s.say();

javascript面向对象(1)_第2张图片

案例3:


function People(){

}
People.prototype.say = function(){
    alert("hello");
}

function Student(){

}

// Student继承People
Student.prototype = new People();

var superSsay = Student.prototype.say;

// Student自己的say方法
Student.prototype.say = function(){
    console.log(this);
    superSsay.call(this);
    alert("stu-hello");
}

var s = new Student();
s.say();

这里写图片描述

javascript面向对象(1)_第3张图片

javascript面向对象(1)_第4张图片

案例4:


function People(){

}
People.prototype.say = function(){
    alert("hello");
    document.writeln(this.name);
}

function Student(){
    this.name = "小明";
}

// Student继承People
Student.prototype = new People();

var superSsay = Student.prototype.say;

// Student自己的say方法
Student.prototype.say = function(){
    console.log(this);
    superSsay.call(this);
    alert("stu-hello");
}

var s = new Student();
s.say();

这里写图片描述

javascript面向对象(1)_第5张图片

javascript面向对象(1)_第6张图片

这里写图片描述

案例6:


function People(){

}
People.prototype.say = function(){
    alert("hello");
}

function Student(){
    this.name = "小明";
}

// Student继承People
Student.prototype = new People();



// Student自己的say方法
Student.prototype.say = function(){
    alert("stu-hello");
}

var superSsay = Student.prototype.say;
superSsay();

var s = new Student();
s.say();

javascript面向对象(1)_第7张图片

javascript面向对象(1)_第8张图片

案例7:


function People(name){
    this._name = name;
}
People.prototype.say = function(){
    alert("peo-hello" + this._name);
}

function Student(name){
    this._name = name;
}

// Student继承People
Student.prototype = new People();

var superSsay = Student.prototype.say;

// Student自己的say方法
Student.prototype.say = function(){
    superSsay.call(this);
    alert("stu-hello");
}

var s = new Student("iwen");
s.say();

javascript面向对象(1)_第9张图片

javascript面向对象(1)_第10张图片

案例8:

(function(){
    var n = "ime";
    function People(name){
        this._name = name;
    }
    People.prototype.say = function(){
        alert("peo-hello" + this._name + n);
    }
    window.People = People;
}());

(function(){
    function Student(name){
        this._name = name;
    }

    // Student继承People
    Student.prototype = new People();

    var superSsay = Student.prototype.say;

    // Student自己的say方法
    Student.prototype.say = function(){
        superSsay.call(this);
        alert("stu-hello" + this._name);
    }
    window.Student = Student;
}());



var s = new Student("iwen");
s.say();

javascript面向对象(1)_第11张图片

javascript面向对象(1)_第12张图片

案例9:

这里写代码片

javascript面向对象(1)_第13张图片

javascript面向对象(1)_第14张图片

你可能感兴趣的:(javascript高级,es5/es6)