面向对象:
面向对象三大特点:
封装:将事物的属性和功能集中定义在一个对象中
继承:父对象的成员,子对象不用反复创建,也可直接使用
多态:同一类事物或父子关系的事物,也可能表现出不同的状态

js中都是继承原型:
原型对象: 集中保存一类对象共有成员的父级对象
何时使用原型对象: 凡是所有子对象共有的属性*值*和方法,都要在原型中集中定义一次。子对象共同使用。
如何使用:
如何获得原型对象: 每个函数都有一个prototype属性引用自己的原型对象。
回顾: new 4件事:
1. 创建空对象
2. 设置空对象的__proto__属性继承构造函数的原型对象
原型对象中的属性,新对象可直接使用,不用重复定义
3. 调用构造函数为新对象添加属性和方法
4. 返回新对象地址保存在变量中
如何向原型对象中添加共有属性和方法:
构造函数.prototype.属性名/方法名=....

原型链: 由各级对象的__proto__属性连续继承形成的链式结构
用来控制属性的使用顺序: 自己有,就不用父级的。
自己没有,才到父级找。
如果父级没有,继续延原型链向上找
如果到顶级对象都没有,才返回undefined
vs 作用域链: 用于控制变量的使用顺序。

自有属性和共有属性:
1. 判断自有属性: var bool=obj.hasOwnProperty("属性名");
如果指定"属性",直接保存在obj本地,则是自有属性,返回true。
如果指定"属性",没有保存在obj本地,则返回false。
2. 判断共有属性: 不是自有,且在原型链中有
!obj.hasOwnProperty("属性名")
&&("属性名" in obj)//判断obj的原型链上是否包含指定属性。

内置对象的原型对象: 保存了内置对象共有的API和属性值

原型相关API:
1. 获得对象的父级原型对象: 2种:
1. 通过构造函数获得: 构造函数.prototype
2. 通过子对象获得:
obj.__proto__ 问题: __proto__是内部属性,可能被禁用
Object.getPrototypeOf(obj)
2. 判断两对象间的父子关系:
父对象.isPrototypeOf(子对象)
如果父对象确实是子对象的父级,就返回true
如果父对象不是子对象的父级,就返回false
强调: 检查整个原型链

重写(override): 如果子对象觉得父对象的成员你不好用,可在本地定义同名成员覆盖父对象成员

转载于:https://www.cnblogs.com/tracy-zhu/p/5766591.html

面向对象(程序员最呆的地方,一切皆是对象)相关推荐

  1. JavaScript id_好程序员web前端分享Javascript中函数作为对象

    好程序员web前端分享Javascript中函数作为对象,Javascript赋予了函数非常多的特性,其中最重要的特性之一就是将函数作为第一型的对象.那就意味着在javascript中函数可以有属性, ...

  2. java中的model_Java程序员必看之springmvc中的Model对象在重定向中的数据

    原标题:Java程序员必看之springmvc中的Model对象在重定向中的数据 在springmvc框架中,一个handler方法中的参数可以内置接收Model类型的对象,主要用于存储数据之用,主要 ...

  3. 程序员脱单秘籍 | 我跟JVM搞对象!【深度剖析对象的创建和内存分配】

    长久以来,面向对象编程大行其道.也正是因为有了面向对象的设计思想,技术才极大程度促进了社会的发展.作为新时代农民工,即已知晓或者掌握面向对象的编程方法,那么知其然也只其所以然也是我们每个人身体力行的必 ...

  4. 当程序员遇到有远见的丈母娘,找对象那不是事

    上周母亲节,程序员们做代码卡片呀,亲自下厨呀,朋友圈发照片呀,各种秀孝心--可不知妈妈的苦心:儿砸,你给妈带个媳妇回来吧! 当妈的不知道,程序员也不想当别人在放肆秀恩爱的时候,程序员单身狗们在角落里瑟 ...

  5. 庆祝EDA夺冠之余,我们来讨论讨论程序员一般想要new一个什么样的对象

    朋友想要帮忙介绍对象,问到这个问题,"你想要找一个什么样子的女生?"我想让大家帮忙说说,应该怎样说出自己的观点,这样才不会显得自己特别挑?另外怎样说出自己的条件,让中间人可以把自己 ...

  6. 程序员的520表白代码,你给你对象整过几个?

    说起格子衫.地中海.厚重的黑眼镜框.不懂浪漫且油腻的直男,想必大家的脑海里浮现出来的就是程序员的形象了. 但事实上,程序员也可以是可以很浪漫的哦!以下就是w3cschool编程狮小师妹搜集整理程序员5 ...

  7. 震惊某程序员竟然用KNN给女神筛选相亲对象KNN原理代码实现

    震惊 邻居女神小美到了要出嫁的年纪,天天相亲遇见奇葩,所以小美准备拜托她的青梅竹马兼男闺蜜的单身男程序员 你!!!!! 帮她写个程序,提前筛选一下相亲对象 你:??????? 震惊 某程序员竟然用k近 ...

  8. 程序员是呆在一个公司等涨工资好,还是跳槽涨工资好?

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 作为一个职场打拼近20年的老咖,基本上一直呆在科技和互联网公司,几乎很少能看到每年持续都涨工资的企业.所以,建议你踏踏实实在这个公司呆着吧 ...

  9. 【黑马程序员】C++核心编程2 -类与对象(封装、继承和多态)-this指针-友元-运算重载符-文本操作(附测试用例源码、测试结果图及详细注释)

最新文章

  1. 《NoSQL For Mere Mortals》书评与作者问答录
  2. python sys模块作用_浅谈Python中的模块
  3. python处理日志_python日志处理(logging模块)
  4. 适配器模式理解和使用
  5. 关于Linux访问web遇到403 Forbidden的问题
  6. ssm整合之六 时间日期装换
  7. Spark Streaming 实战案例(一)
  8. 动手开发第一个 Cypress 测试应用
  9. 微软也加入FB开放计算项目 发布交换机操作系统
  10. netflix 模式创新_创新设计模式:单例模式
  11. java栈API_Java中的堆栈API——Stack
  12. rr计算机专业英语,《计算机专业英语》电子教本8.pdf
  13. JEECG datagrid 页面刷新reloadTable
  14. 09-03-06 FreeEIM 姗姗来迟
  15. File类和各种io类会不会自动创建文件
  16. [每天一个知识点]25-职业生涯-核桃皮是当水果吃好还是当蔬菜吃好?
  17. html全屏显示两个显示器,google-chrome – 跨多个显示器的Windows / Chrome / ATI /浏览器全屏...
  18. Android 蓝色光滤波器(护眼神器) 反编译
  19. 【基础】信息时代与计算机
  20. Bzoj 1596: [Usaco2008 Jan]电话网络

热门文章

  1. 解决 vmware 死锁 :take ownership failed
  2. jQuery Howto: 如何快速创建一个AJAX的加载的图片效果
  3. 蓝桥杯 BASIC-13 基础练习 数列排序
  4. L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
  5. 税收征管信息系统_聚焦湖北税收征管信息系统正式切换上线啦! 首日办理业务逾26万件...
  6. java poi读取excel日期格式数据
  7. oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  8. percona-toolkit工具包的安装和使用
  9. Zookeeper - 简述ZAB 协议和zookeeper
  10. TechNet 晒文 - Windows 7 系列汇总