三分钟带你看懂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进阶相关推荐

  1. 三分钟带你看懂HDMI接口的PCB设计

    三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...

  2. 三分钟带你弄懂slot插槽——vue进阶

    文章目录 三分钟带你弄懂slot插槽--vue进阶 一.概述 程序员之死 什么是 slot插槽? 2.6.0 版本中的 slot 二.具名插槽 例子 效果图 代码 三.小惊喜 三分钟带你弄懂slot插 ...

  3. 开关柜太复杂看着头疼?三分钟带你看懂开关柜!

    安科瑞 华楠 开关柜是指按一定的方案将一次设备.二次设备组装而成的成套配电装置,主要用来对线路.设备实施控制.保护.开关柜按进出线电压等级可分高压开关柜(固定式和手车式)和低压开关柜(固定式和抽屉式) ...

  4. 一分钟带你看懂UML图

    一分钟带你看懂UML图 小小demo package Test;/*** @Description:* @ProjectNmae: demo1* @PackageName: Test* @ClassN ...

  5. 三分钟带你读懂 BERT

    本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...

  6. 【 全干货 】5 分钟带你看懂 Docker !

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付 ...

  7. 干货:五分钟带你看懂NestedScrolling嵌套滑动机制

    Android NestedScrolling嵌套滑动机制 Android在发布5.0之后加入了嵌套滑动机制NestedScrolling,为嵌套滑动提供了更方便的处理方案.在此对嵌套滑动机制进行详细 ...

  8. 【 全干货 】5 分钟带你看懂 Docker ! 1

    作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付.自动部署,并且实现开发环境.测试环境.运维环境三方环境的 ...

  9. 【全干货】5分钟带你看懂 Docker!

    作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付.自动部署,并且实现开发环境.测试环境.运维环境三方环境的 ...

最新文章

  1. 在leangoo中如何做好需求管理(研发效能)
  2. 雷军这个程序员!真的牛逼!
  3. 国科大UCAS胡包钢教授《信息论与机器学习》课程第二讲:信息论基础一
  4. Atitit 热烈庆祝读经器项目圆满完成
  5. Python获取当前工作目录
  6. Android深入浅出之Binder机制
  7. 又一个4000字肝货,详解tkinter图形化界面制作流程!
  8. React学习:双向数据绑定、约束性和非约束性组件-学习笔记
  9. oo0ooo0ooo0oo_OoO的完整形式是什么?
  10. mysql master-user_【MySQL】MySQL5.6数据库基于binlog主从(Master/Slave)同步安装与配置详解...
  11. delphi 中如果不进行 closehandle 会怎么样_报考八一农大的十一大选择之七|带你走进不一样的“信息世界”...
  12. 帕特·基辛格被任命为英特尔CEO已有一年
  13. nginx 如何处理请求系列3-server_name指令
  14. python搭建博客项目思路_Django项目——Blog简易开发入门
  15. redis数据类型之hash入门
  16. poj3262(Protecting the Flowers)贪心
  17. 人人开源项目搭建到服务器,四、人人开源搭建后台与前端 2020-06-16
  18. Vue 动态组件component
  19. mybatis逻辑删除
  20. 【loj2567】【APIO2016】划艇

热门文章

  1. 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机 | 极客头条
  2. 微软放弃继续开发 Visual Basic !
  3. 5G、IoT 时代下,手机聚焦拍照是否走错了方向?
  4. 腾讯 QQ 产品已经实现全量上云;中科院计算所发明新编程语言“木兰”;Electron 7.1.9 发布 | 极客头条...
  5. 企业上云,如何做好服务器的安全?
  6. 程序员是如何处理密码的?
  7. 5G 套餐最快本月开售;谷歌被指骗取人脸数据;Calibre 4.0 发布 | 极客头条
  8. 难怪各家抢滩物联网!真实原因竟是……
  9. 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?
  10. 别熬夜加班了,Facebook 开源了一款代码推荐神器!| 程序员硬核评测