通常js类定义和使用的是这样的:

    var Class=function(){};Class.prototype.sharedFn=function(){}; var instanceA=new Class();  var instanceB=new Class();  

好处是这样的: 实例A 和 实例B 都继承了sharedFn成员,并且是同一份,节省内存了空间

why?

个人理解:

  1. 每个js函数都有一个prototype属性(prototype上会有个constructor属性指向构造函数)
  2. 每个js对象都持有原型对象(简称原型)
  3. 通过new操作符创建的对象使用构造函数的prototype原型对象作为自身的原型属性(内置属性)

ps:定义类的步骤

  1. 声明一个函数作为构造函数
  2. 在函数的prototype属性上设置实例的共享方法(prototype将共享为所有实例对象的原型属性

转载于:https://www.cnblogs.com/mushishi/p/5814611.html

将方法定义在prototype上的好处相关推荐

  1. 为什么wait、notify、notifyAll方法定义在Object中而不是Thread类中

    多线程概述 Java是一个支持多线程的开发语言,多线程并发执行任务可以充分利用CPU资源,提高多任务并发执行效率(注意区分:多线程并不会加快任务的执行速度,而是可以充分利用多核CPU让线程轮流进行工作 ...

  2. 哈尔尺度函数_用来表示定义在实数域上的平方可积函数空间Haar尺度函数.PPT

    用来表示定义在实数域上的平方可积函数空间Haar尺度函数 发 展 历 程 重 温 傅 立 叶 乍看小波 重 温 傅 立 叶 用傅立叶变换分析地震波和岩层的结构 重 温 傅 立 叶 傅立叶变换:将信号表 ...

  3. 19 | 耗电优化(下):耗电的优化方法与线上监控

    相比启动.卡顿.内存和网络的优化来说,可能大多数应用对耗电优化的关注不是太多.当然并不是我们不想做耗电优化,更多时候是感觉有些无从下手. 不同于启动时间.卡顿率,耗电在线上一直缺乏一个可以量化的指标. ...

  4. 在PHP中通过POST方法实现文件上传功能

    (本文内容属于转载,原文链接http://blog.sina.com.cn/s/blog_4fe447d501009rzh.html) 在PHP 5中通过POST方法实现文件上传非常简单,可以上传文本 ...

  5. python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题

    python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(c ...

  6. python使用imbalanced-learn的SMOTETomek方法同时进行上采样和下采样处理数据不平衡问题

    python使用imbalanced-learn的SMOTETomek方法同时进行上采样和下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜 ...

  7. .NET技术 ASP.NET中常用的文件上传下载方法(多文件上传)

    文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务器 3.转换成二进制字节流保存到数据库以 ...

  8. js多种方法:返回上一页

    js多种方法:返回上一页 返回上一页: // 1. 第一种 window.history.go(-1); // 2. 第二种 window.history.back(); // 3. 第三种(语法不合 ...

  9. CV方向介绍 | 基于自然语言的跨模态行人re-id的SOTA方法简述(上)

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自52CV群友Jokie的知乎 https://zhuanlan.zhihu.com/p/69559437 这是上篇,期待作者早日出下篇- 撒花 ...

最新文章

  1. Jpa-操作mongodb
  2. Apache Pulsar中的地域复制,第1篇:概念和功能
  3. 如何调试分析Android中发生的tombstone
  4. github和pypi_如何将GitHub用作PyPi服务器
  5. python 数据清洗 豆瓣电影_Python高阶操作--关于数据清洗
  6. MS CRM如果在Tab页中有Iframe选项,原来速度不慢,突然速度变慢
  7. HDU1556 Color the ball【差分数组+线段树】
  8. 36.Linux驱动调试-根据oops定位错误代码行
  9. Apache下的FileUtils.listFiles方法简单使用技巧
  10. 初次接触ruby的困惑
  11. 艾迈斯半导体推出新款高性能读取IC,推动医疗和工业数字化X射线设备制造商降本增效
  12. 【Windows】bat | 服务 | bat作为服务 | bat转exe
  13. R语言-上海二手房数据分析
  14. 8种经典的统计学悖论18种经典的哲学悖论
  15. becon帧 wifi_构造并发送Beacon帧以伪造任意WiFi热点
  16. js获取当前指定的前几天的日期(如当前时间的前七天的日期)
  17. 网络安全有哪些岗位,如何成为一位优秀的网络安全工程师?
  18. 关于网络硬件配置出现问题,无法上网问题的解决
  19. JavaScript实现环形图echarts
  20. MAC 升级到10.14 mojave beta之后git无法使用解决方案

热门文章

  1. Windows 2008远程桌面多用户登陆的配置方法 - z
  2. 如何进入、退出docker的container
  3. 基于Apache Spark的机器学习及神经网络算法和应用
  4. SQL Server DBA常见面试 笔试问题
  5. TCP 的连接建立:采用三报文握手
  6. [python](windows)分布式进程问题:pickle模块不能序列化lambda函数
  7. 利用dom4j取出XML文件中的数据
  8. MariaDB10和MySQL5.6社区版压力测试
  9. WINDOWS2003域控制器禁止U盘
  10. Excel 自动根据Sheet名生成目录