三分钟带你看懂prototype原型——ES6进阶
三分钟带你看懂prototype原型——ES6进阶
- 1. prototype 定义
- 2. new 构造函数
- 3. 存储
- 4. prototype 作用
1. prototype 定义
在JS中的类的实现是基于Prototype的,基于原型的继承比基于类的继承在概念上更为简单:一个新对象可以继承一个旧对象的属性
2. new 构造函数
代码很短很简单,要看完嗷~
// 源于黑马视频教程
function Star(uname,age){this,uname = uname;this.age = age;this.sing = function(){console.log('我会唱歌')}
}
var ldh = new Star('刘德华',18)
var zxy = new Star('张学友',19)
如图,构造函数,又称类函数,与普通的函数没什么区别,但是前面加上了 new ,就能够在内存中重新开辟内存空间
3. 存储
上文中有提到 new 关键字,既然是分配出了新的内存空间,从性能方面考虑,自然要让分配的内存尽可能的少,换句话说,应该将相同的部分整合到一个相对固定的内存空间里面公用,而不是开辟一个新的内存空间。
4. prototype 作用
没错,prototype的作用就是 共享方法 ,在上面的例子中,ldh和zxy对象都有一个sing方法,我们想要他们共享同一个内存方法,让new时所分配的内存空间尽可能的少。
所以我们对上面的代码进行如下处理:
Star.prototype.sing = function(){console.log('我会唱歌')
}
这样,我们就把上面的2个sing的内存空间整合到了一起,以后new出的对象,都会到Star原型里面去找。
ps:换句话说,先在对象ldh、zxy里面找sing方法,要是找不到,就跑到上一级,也就是Star原型里面找。
供交流,共勉~
三分钟带你看懂prototype原型——ES6进阶相关推荐
- 三分钟带你看懂HDMI接口的PCB设计
三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...
- 三分钟带你弄懂slot插槽——vue进阶
文章目录 三分钟带你弄懂slot插槽--vue进阶 一.概述 程序员之死 什么是 slot插槽? 2.6.0 版本中的 slot 二.具名插槽 例子 效果图 代码 三.小惊喜 三分钟带你弄懂slot插 ...
- 开关柜太复杂看着头疼?三分钟带你看懂开关柜!
安科瑞 华楠 开关柜是指按一定的方案将一次设备.二次设备组装而成的成套配电装置,主要用来对线路.设备实施控制.保护.开关柜按进出线电压等级可分高压开关柜(固定式和手车式)和低压开关柜(固定式和抽屉式) ...
- 一分钟带你看懂UML图
一分钟带你看懂UML图 小小demo package Test;/*** @Description:* @ProjectNmae: demo1* @PackageName: Test* @ClassN ...
- 三分钟带你读懂 BERT
本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...
- 【 全干货 】5 分钟带你看懂 Docker !
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付 ...
- 干货:五分钟带你看懂NestedScrolling嵌套滑动机制
Android NestedScrolling嵌套滑动机制 Android在发布5.0之后加入了嵌套滑动机制NestedScrolling,为嵌套滑动提供了更方便的处理方案.在此对嵌套滑动机制进行详细 ...
- 【 全干货 】5 分钟带你看懂 Docker ! 1
作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付.自动部署,并且实现开发环境.测试环境.运维环境三方环境的 ...
- 【全干货】5分钟带你看懂 Docker!
作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付.自动部署,并且实现开发环境.测试环境.运维环境三方环境的 ...
最新文章
- 在leangoo中如何做好需求管理(研发效能)
- 雷军这个程序员!真的牛逼!
- 国科大UCAS胡包钢教授《信息论与机器学习》课程第二讲:信息论基础一
- Atitit 热烈庆祝读经器项目圆满完成
- Python获取当前工作目录
- Android深入浅出之Binder机制
- 又一个4000字肝货,详解tkinter图形化界面制作流程!
- React学习:双向数据绑定、约束性和非约束性组件-学习笔记
- oo0ooo0ooo0oo_OoO的完整形式是什么?
- mysql master-user_【MySQL】MySQL5.6数据库基于binlog主从(Master/Slave)同步安装与配置详解...
- delphi 中如果不进行 closehandle 会怎么样_报考八一农大的十一大选择之七|带你走进不一样的“信息世界”...
- 帕特·基辛格被任命为英特尔CEO已有一年
- nginx 如何处理请求系列3-server_name指令
- python搭建博客项目思路_Django项目——Blog简易开发入门
- redis数据类型之hash入门
- poj3262(Protecting the Flowers)贪心
- 人人开源项目搭建到服务器,四、人人开源搭建后台与前端 2020-06-16
- Vue 动态组件component
- mybatis逻辑删除
- 【loj2567】【APIO2016】划艇
热门文章
- 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机 | 极客头条
- 微软放弃继续开发 Visual Basic !
- 5G、IoT 时代下,手机聚焦拍照是否走错了方向?
- 腾讯 QQ 产品已经实现全量上云;中科院计算所发明新编程语言“木兰”;Electron 7.1.9 发布 | 极客头条...
- 企业上云,如何做好服务器的安全?
- 程序员是如何处理密码的?
- 5G 套餐最快本月开售;谷歌被指骗取人脸数据;Calibre 4.0 发布 | 极客头条
- 难怪各家抢滩物联网!真实原因竟是……
- 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?
- 别熬夜加班了,Facebook 开源了一款代码推荐神器!| 程序员硬核评测