设为首页 加入收藏

TOP

浅谈JavaScript的面向对象思想(六)
2017-09-19 14:21:04 】 浏览:6497
Tags:浅谈 JavaScript 面向 对象 思想
ob);


    this.age = age;
    this.getAge = function () {
        return this.age;
    }
 }
var fatherA = new FatherA("Tom");
var fatherB = new FatherB("Engineer");
var son = new Son("Jack","Programmer",18);
console.log(fatherA.getName());//Tom
console.log(fatherB.getJob());//Engineer
console.log(son.getName());//Jack//继承父类FatherA的getName()方法
console.log(son.getJob());//Programmer//继承父类FatherB的getJob()方法
console.log(son.getAge());//18
 


 


apply()方法



function Father(name) {
    this.name = name ;
    this.getName = function () {
        return this.name;
    }
 }
function Son(name,job,age) {
    Father.apply(this,new Array(name));


    this.age = age;
    this.getAge = function () {
        return this.age;
    }
 }
var father = new Father("Tom");
var son = new Son("Jack","Programmer",18);
console.log(father.getName());//Tom
console.log(son.getName());//Jack//继承父类getName()方法
console.log(son.getAge());//18
 


多继承(利用apply()方法实现多继承)



function FatherA(name) {
    this.name = name ;
    this.getName = function () {
        return this.name;
    }
 }
function FatherB(job) {
    this.job = job;
    this.getJob = function () {
        return this.job;
    }
 }
function Son(name,job,age) {
    FatherA.apply(this,new Array(name));
    FatherB.apply(this,new Array(job));


    this.age = age;
    this.getAge = function () {
        return this.age;
    }
 }
var fatherA = new FatherA("Tom");
var fatherB = new FatherB("Engineer");
var son = new Son("Jack","Programmer",18);
console.log(fatherA.getName());//Tom
console.log(fatherB.getJob());//Engineer
console.log(son.getName());//Jack//继承父类FatherA的getName()方法
console.log(son.getJob());//Programmer//继承父类FatherB的getJob()方法
console.log(son.getAge());//18
 


原型链方法



function Father() {
 }
Father.prototype.name = "Tom";
Father.prototype.getName = function () {
  return this.name;
 };
function Son() {
 }
Son.prototype = new Father();
Son.prototype.age = 18;
Son.prototype.getAge = function () {
    return this.age;
 };
var father = new Father();
var son = new Son();
console.log(father.getName());//Tom
console.log(son.getName());//Tom//继承父类FatherA的getName()方法
console.log(son.getAge());//18
 


混合方式(call()+原型链)



function Father(name) {
    this.name = name;
 }
Father.prototype.getName = function () {
  return this.name;
 };
function Son(name,age) {
    Father.call(this,name);
    this.age = age;
 }
Son.prototype = new Father();
Son.prototype.getAge = function () {
    return this.age;
 };
var father = new Father("Tom");
var son = new Son("Jack",18);
console.log(father.getName());//Tom
console.log(son.getName());//Jack//继承父类Father的getName()方法
console.log(son.getAge());//18
 


多态机制实现



function Person(name) {
    this.name = name;
    if

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java同步锁的正确使用 下一篇JSON字符串与JSON对象的相互转换

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目