面向对象(程序员最呆的地方,一切皆是对象)
面向对象:
面向对象三大特点:
封装:将事物的属性和功能集中定义在一个对象中
继承:父对象的成员,子对象不用反复创建,也可直接使用
多态:同一类事物或父子关系的事物,也可能表现出不同的状态
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
面向对象(程序员最呆的地方,一切皆是对象)相关推荐
- JavaScript id_好程序员web前端分享Javascript中函数作为对象
好程序员web前端分享Javascript中函数作为对象,Javascript赋予了函数非常多的特性,其中最重要的特性之一就是将函数作为第一型的对象.那就意味着在javascript中函数可以有属性, ...
- java中的model_Java程序员必看之springmvc中的Model对象在重定向中的数据
原标题:Java程序员必看之springmvc中的Model对象在重定向中的数据 在springmvc框架中,一个handler方法中的参数可以内置接收Model类型的对象,主要用于存储数据之用,主要 ...
- 程序员脱单秘籍 | 我跟JVM搞对象!【深度剖析对象的创建和内存分配】
长久以来,面向对象编程大行其道.也正是因为有了面向对象的设计思想,技术才极大程度促进了社会的发展.作为新时代农民工,即已知晓或者掌握面向对象的编程方法,那么知其然也只其所以然也是我们每个人身体力行的必 ...
- 当程序员遇到有远见的丈母娘,找对象那不是事
上周母亲节,程序员们做代码卡片呀,亲自下厨呀,朋友圈发照片呀,各种秀孝心--可不知妈妈的苦心:儿砸,你给妈带个媳妇回来吧! 当妈的不知道,程序员也不想当别人在放肆秀恩爱的时候,程序员单身狗们在角落里瑟 ...
- 庆祝EDA夺冠之余,我们来讨论讨论程序员一般想要new一个什么样的对象
朋友想要帮忙介绍对象,问到这个问题,"你想要找一个什么样子的女生?"我想让大家帮忙说说,应该怎样说出自己的观点,这样才不会显得自己特别挑?另外怎样说出自己的条件,让中间人可以把自己 ...
- 程序员的520表白代码,你给你对象整过几个?
说起格子衫.地中海.厚重的黑眼镜框.不懂浪漫且油腻的直男,想必大家的脑海里浮现出来的就是程序员的形象了. 但事实上,程序员也可以是可以很浪漫的哦!以下就是w3cschool编程狮小师妹搜集整理程序员5 ...
- 震惊某程序员竟然用KNN给女神筛选相亲对象KNN原理代码实现
震惊 邻居女神小美到了要出嫁的年纪,天天相亲遇见奇葩,所以小美准备拜托她的青梅竹马兼男闺蜜的单身男程序员 你!!!!! 帮她写个程序,提前筛选一下相亲对象 你:??????? 震惊 某程序员竟然用k近 ...
- 程序员是呆在一个公司等涨工资好,还是跳槽涨工资好?
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 作为一个职场打拼近20年的老咖,基本上一直呆在科技和互联网公司,几乎很少能看到每年持续都涨工资的企业.所以,建议你踏踏实实在这个公司呆着吧 ...
- 【黑马程序员】C++核心编程2 -类与对象(封装、继承和多态)-this指针-友元-运算重载符-文本操作(附测试用例源码、测试结果图及详细注释)
最新文章
- 《NoSQL For Mere Mortals》书评与作者问答录
- python sys模块作用_浅谈Python中的模块
- python处理日志_python日志处理(logging模块)
- 适配器模式理解和使用
- 关于Linux访问web遇到403 Forbidden的问题
- ssm整合之六 时间日期装换
- Spark Streaming 实战案例(一)
- 动手开发第一个 Cypress 测试应用
- 微软也加入FB开放计算项目 发布交换机操作系统
- netflix 模式创新_创新设计模式:单例模式
- java栈API_Java中的堆栈API——Stack
- rr计算机专业英语,《计算机专业英语》电子教本8.pdf
- JEECG datagrid 页面刷新reloadTable
- 09-03-06 FreeEIM 姗姗来迟
- File类和各种io类会不会自动创建文件
- [每天一个知识点]25-职业生涯-核桃皮是当水果吃好还是当蔬菜吃好?
- html全屏显示两个显示器,google-chrome – 跨多个显示器的Windows / Chrome / ATI /浏览器全屏...
- Android 蓝色光滤波器(护眼神器) 反编译
- 【基础】信息时代与计算机
- Bzoj 1596: [Usaco2008 Jan]电话网络
热门文章
- 解决 vmware 死锁 :take ownership failed
- jQuery Howto: 如何快速创建一个AJAX的加载的图片效果
- 蓝桥杯 BASIC-13 基础练习 数列排序
- L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
- 税收征管信息系统_聚焦湖北税收征管信息系统正式切换上线啦! 首日办理业务逾26万件...
- java poi读取excel日期格式数据
- oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
- percona-toolkit工具包的安装和使用
- Zookeeper - 简述ZAB 协议和zookeeper
- TechNet 晒文 - Windows 7 系列汇总