博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象笔记1
阅读量:5738 次
发布时间:2019-06-18

本文共 1424 字,大约阅读时间需要 4 分钟。

面向对象

面向过程:关注的是具体实现的过程 面向对象:关注的是特征(具有的特征),注意:面向对象不是没有过程,而是不关注过程。

面向对象的一些个人呢的理解:面向对象需要用到构造函数 在构造函数中将 公用的方法剥离 出来存放在 函数的 prototype 这个 对象中 。方便以后调用。

/** 在js中,对象的创建有两种方式*   1. new Object()*   2. {}* 通过上述的两种方式,都可以创建一个空的对象 * */ 若创建一个构造函数 function (所谓构造函数就是通过new function()的 方法来获取)

对new方法的解释

new: 运算符 通过new运算符运算函数(该函数称之为构造函数),会得到一个对象的结果new只能和函数配合使用 当我们通过new的方式去执行一个函数时

1.会在该函数内部创建一个空的对象

2.函数中的this是指向该对象

3.函数执行完成之后自动返回该对象

当我们通过new方法调用执行一个函数时,返回值:?

1.若函数中没有return 返回内部创建的空对象

2.如果有return(但return返回的不是一个对象的话) 返回内部创建的空对象

3.return的是对象 返回的就是return的对象

返回总结:无论是否有return 当我们通过new的方法去调用一个函数时该函数一定会返回一个对象,通过new 方法来执行函数就是来创建对象的。

我们将new执行的函数称之为:构造函数 构造函数和普通函数的区别就是是否使用new方法来执行,为了和普通函数进行区分,通常情况下对构造函数使用驼峰命名。

构造函数 <-> 类

* 类:类型,对具有相同特征的对象的抽象描述

* 对象:由类创建出来的具体对象(实例),也称为实例化对象

* 构造函数:类中用来创建对象的具体函数,类创建对象的时候调用的初始化函数 *

* 通过Teacher构造函数创建出来了下面两个对象

* 这两个对象都拥有相同的特征,不同的对象相同的特征也会有不同的值,每一个对象都拥有属于自己的特征值

* 但是有时候,对象的一些特征所拥有的值其实也是一样,那么如果每个对象对这样的相同值的特征也是独立保存一份的话,

就会照成资源浪费(内存占用),所以我们需要去优化这个问题

构造函数+原型

为了使对象共有的特征方法维护和管理,所以有一种专门来管理和维护这些共同特征的方法(手段) *

* 当一个函数被创建的时候,该函数下自动会有一些属性(函数也是对象),其中有一个属性,名称:prototype,他的值是一个对象,我们通常就把构造函数创建的对象所拥有的共同特征保存在这些对象的构造函数的prototype属性下 *

* 当一个对象被创建的时候,对象自动会创建一个属性,名称:__proto__,该属性也是一个对象,其实该属性就是该对象的构造函数的prototype *

* 当我们去调用一个对象下的属性或方法的时候,对象首先会在自身上查找是否该属性或方法,如果有则调用,如果没有,则会查找自己的__proto__属性上是否有给属性或方法 *

* *

总结: * 我们通常把对象私有属性或方法放置在每个对象自身上 * 我们通常把对象公有(共有)的属性或方法放置在这些对象的构造函数的原型下 * * 构造函数+原型

转载于:https://www.cnblogs.com/YinWeiBlog/p/7414663.html

你可能感兴趣的文章
ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
查看>>
OC中KVC的注意点
查看>>
JQ入门(至回调函数)
查看>>
【洛天依】几首歌的翻唱(无伴奏)
查看>>
OpenSSL初瞻及本系列的博文的缘由
查看>>
ISO8583接口的详细资料
查看>>
tmux不自动加载配置文件.tmux.conf
查看>>
经验分享:JavaScript小技巧
查看>>
[MOSEK] Stupid things when using mosek
查看>>
程序实例---栈的顺序实现和链式实现
查看>>
服务的使用
查看>>
Oracle 用户与模式
查看>>
MairDB 初始数据库与表 (二)
查看>>
拥在怀里
查看>>
chm文件打开,有目录无内容
查看>>
whereis、find、which、locate的区别
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
nagios监控windows 改了NSclient++默认端口 注意事项
查看>>
干货 | JAVA代码引起的NATIVE野指针问题(上)
查看>>