面向对象和面向过程的区别

   最开始接触面向对象的时候,一直搞不懂面向对象到底是什么,它和面向过程又有什么区别。

后来整理出来一些知识点,拿出来给大家分享:
首先我们来说面向过程面向对象的区别:
面向过程呢,就是说把一个项目,按照特定的顺序,从头到尾一步一步的去实现什么,后做什么,直到结束。整个过程十分注重过程。而面向对象,就是说,把一个项目分成很多个小的项目,每一个小的项目又各自负责着自己的功能,最后由他们组合成为一个整体。说完这些,应该对面向对象有个初步的认识,下面我们再来看些细节。

先从创建对象开始:
在这里插入图片描述
在这里我们创建了一个对象,名字是张三,年龄是100,看起来没什么问题。但是如果说我们要创建多个对象呢,那怎么办?那我们可以写多个,如下图:
在这里插入图片描述
但是这样,代码重复量太多,会造成代码冗余
于是我们用工厂模式来解决代码冗余的情况,也就是函数封装解决:

Function createPerson (name,age) {
var person1 = new Object ();
person1 . name = name;
person1 . age = age;
person1 . showinfo = function () {
return  ‘ 我的名字是:’ + person 1 .name + ‘ 我的年龄:+person.age;
}
return person1 ;
}
console . log ( CreatePerson ( ‘ zhangsan ’ , 100 ) . name) ;

这样看来是已经解决了,但是,工厂模式也不是十全十美的,通过测试发现,它并不能识别对象的类型,对象来自于var person1 = new Object (); 它根本不像数组或日期对象,有自己的名字。
于是,我们又采用构造函数的方式来解决。首先,什么是构造函数?简单一句话就是,首字母大写,new 运算符调用。
在这里插入图片描述
但是构造函数内部的属性和方法是私有的,每一个对象上面的方法使用的时候都会重新创建,这样的话就会影响性能,属性可以选择使用构造函数,但是方法不行,这样看来,构造函数只是解决了一半。
于是我们就有了prototype 属性。这是系统提供的原型属性,每一个函数下面都有一个原型属性,里面放置的是共有的属性或方法。如下图:
在这里插入图片描述

所以面向对象开发也叫混合开发,也就是用构造函数加原型的方式开发。—逆战班

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值