面向对象五

作者: Monee121 | 来源:发表于2018-04-09 15:48 被阅读0次

面向对象高级二

  1. 总结 PHP 里的面向对象、继承方式
  2. JS 里的继承方式
<script>
function Person(name, sex)
{
    this.name=name;
    this.sex=sex;
}

Person.prototype.showName=function ()
{
    alert(this.name);
};

Person.prototype.showSex=function ()
{
    alert(this.sex);
};

//-------------------------------------

function Worker(name, sex, job)
{
    //this->new出来的Worker对象
    //构造函数伪装        调用父级的构造函数——为了继承属性
    Person.call(this, name, sex);
    
    this.job=job;
}

//通过原型来继承父级的方法
Worker.prototype=Person.prototype;

Worker.prototype.showJob=function ()
{
    alert(this.job);
};

var oW1=new Worker('blue', '男', '打杂的');

oW1.showJob();
</script>
  1. call(构造函数伪装) 和 prototype(原型链)


    原型链.png
<script>
function Person(name, sex)
{
    this.name=name;
    this.sex=sex;
}

Person.prototype.showName=function ()
{
    alert(this.name);
};

Person.prototype.showSex=function ()
{
    alert(this.sex);
};

//-------------------------------------

function Worker(name, sex, job)
{
    //this->new出来的Worker对象
    //构造函数伪装        调用父级的构造函数——为了继承属性
    Person.call(this, name, sex);
    
    this.job=job;
}

//原型链       通过原型来继承父级的方法
//Worker.prototype=Person.prototype;

for(var i in Person.prototype)
{
    Worker.prototype[i]=Person.prototype[i];
}

Worker.prototype.showJob=function ()
{
    alert(this.job);
};

var oP=new Person('blue', '男');
var oW=new Worker('blue', '男', '打杂的');

oP.showName();
oP.showSex();

oW.showName();
oW.showSex();
oW.showJob();
</script>
  1. 引用类型的特点


    image.png

arr1->arr2 内存区域地址

<script>
var arr1=[1,2,3];
var arr2=arr1;

arr2.push(4);

alert('1:'+arr1);   //1234
alert('2:'+arr2);   //1234
</script>
<script>
var arr1=[1,2,3];
var arr2=[];

for(var i in arr1)  //一份份复制
{
    arr2[i]=arr1[i];
}

arr2.push(4);

alert('1:'+arr1);   //1:123
alert('2:'+arr2);   //2:1234
</script>
  1. 原型继承的缺点及解决方案


    image.png
    把父类的方法一个个扔到子类,这样父类就没有子类的方法了。.png

    用到的知识点:


    image.png
  2. instanceof 作用:查看某个对象是否是某个类的实例

<script>
var arr1=[1,2,3];

alert(arr1 instanceof Object);
</script>
  1. 用继承来实现拖拽实例

  2. 系统对象:宿主对象、内置对象、本地对象


    image.png
  3. 继承的优势(补充)

相关文章

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 第七篇 面向对象编程

    一、复习 二、time模块的补充 三、面向对象 四、初始面向对象和类 五、面向对象之间的交互 六、面向对象的组合 ...

  • 阿里P8资深架构师耗时一年整理19年Java工程师成神之路

    1、基础篇 01:面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路 | 2019正式版

    一.基础篇 01 面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • js面向对象

    js面向对象(第五周) 什么是面向对象 面向对象是一种编程思想,是在面向过程编程(结构化编程)之后出现的,面向对象...

  • Java 工程师成神之路

    一、基础篇 01.面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路 | 2019正式版

    1 基础篇 01面向对象 → 什么是面向对象面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关...

  • Java从入门到入坑(基础篇)

    01:面向对象 1:什么是面向对象 面向对象,面向过程 面向对象的三大基本特征和五大基本原则 三大特性:封装,继承...

  • 面向对象编程

    面向对象编程 一、面向对象和面向过程 二、类和对象 三、内存图 四、构造方法 五、关键字 六、面向对象的三大特征 ...

网友评论

    本文标题:面向对象五

    本文链接:https://www.haomeiwen.com/subject/wwyihftx.html