function Person(uname, age) {this.uname = uname;this.sing = function() {console.log('我会唱歌');}
}
var person1 = new Person('wang', 18);
var person2 = new Person('wei', 18);
person1.sing();//我会唱歌
person2.sing();//我会唱歌

这里person1person2分别复制了方法类的sing方法,造成了浪费.(不同于其他语言),javascript通过prototype来实现其他语言的面想对象,多个实例共享一个方法.

 function Person(uname, age) {this.uname = uname;
}
Person.prototype.sing = function() {console.log('我会唱歌');
}
var person1 = new Person('wang', 18);
var person2 = new Person('wei', 18);
//两个方法的sing都是调用prototype.sing
person1.sing();//我会唱歌
person2.sing();//我会唱歌

类方法有prototype,而对象方法中有__proto__,二者是等价的

person1.__proto__ === Persion.prototype;

对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在。

注意:直接用类函数增加的属性,只能通过类函数来访问

Star.sex = '男';

js 高级 prototype相关推荐

  1. 前端知识点总结——JS高级(持续更新中)

    前端知识点总结--JS高级(持续更新中) 1.字符串 什么是: 连续存储多个字符的字符数组 相同: 1. 下标 2. .length 3. 遍历 4. 选取: slice(starti[, endi] ...

  2. JS高级的学习(二)

    JS高级的学习(二) set对象 Set 是一个对象 存放数据 数据永远不会重复 Set 当成是一个数组 遍历 使用 数组方法 find findIndex Map 数组转成 Set对象 const ...

  3. js高级:面向对象+ES6

    js高级:面向对象+ES6 文章目录 js高级:面向对象+ES6 day01 一.ES6中的类和对象 1.1对象 1.2类 1.3创建类 1.4类constructor构造函数 1.5类中添加方法 1 ...

  4. 前端复习8:JS高级

    前端复习8:JS高级 1.对象 1.1 面向过程与面向对象 1.2 对象与类 2 构造函数和原型 2.1 构造函数 2.2 构造原型prototype 2.2 对象原型 2.3 constructor ...

  5. JS高级+ES678

    js高级 数据类型 基本(值)类型 Number: 任意数值 String: 任意文本 Boolean: true/false undefined: undefined null: null 对象(引 ...

  6. Node.js高级编程【一】node 基础

    目录 一.Node 基础 1.课程概述 2.Node.js 架构 3.为什么是Node.js ? 4.Node.js 的 异步IO 5.Node.js 主线程是单线程 6.Node.js 应用场景 7 ...

  7. 前端与移动开发----JS高级----面向对象编程,类与实例对象,继承,严格模式,模板字符串,class封装tab栏

    JS高级01 回顾上阶段 Javascript组成 ECMAScript: 基础语法 (变量, 表达式, 循环, 判断, 函数, 对象等) DOM: document 操作标签(获取, 增加, 插入, ...

  8. ~【笔记】黑马js高级和尚硅谷ES6笔记(部分)~

    点击通往->黑马pink讲js高级. 点击通往->尚硅谷ES6视频. 目录: js高级: 第一部分.构造函数.原型和继承 第二部分.函数进阶 一.函数的定义和调用 二.this 三.严格模 ...

  9. JS 高级(继承、函数)

    JS 高级 继承 构造函数继承 <script>// 构造函数继承// 定义的Person类function Person(name, age) {this.name = name;thi ...

最新文章

  1. 我收到的最佳编程建议
  2. H264格式具体说明
  3. 货物移动_免费收货(MvT511)
  4. 《程序设计与数据结构》第八周学习总结
  5. 让windows cmd也用上linux命令
  6. redis连接被拒绝
  7. 实验计算机控制器的实验结论,微机控制实验报告
  8. springcloud工作笔记099---springboot集成netty,进行线程管理,socket通讯
  9. 随想录(qemu仿真linux kernel)
  10. java输出矩形_java输出长方形求解答
  11. HDU 3651 A Simple Problem
  12. 每日英语:Why Food Companies Are Fascinated by the Way We Eat
  13. 恒生校招java笔试数据库语法_2015恒生电子校招笔试题
  14. 线性同余法生成随机数
  15. Word中输入10以上带圈数字
  16. 天池大数据竞赛口碑商家客流量预测——时序预测(python-numpy-arima)
  17. Droopy v0.2 靶机渗透(drupal 7.3版本漏洞)
  18. Winsock 10106错误解决方法
  19. 国产高可用软件,双机热备与冷备的区别
  20. 神奇女侠计算机技术,神奇女侠代言 华硕灵耀X轻薄本及双屏AI概念机亮相

热门文章

  1. ZOJ3545——AC自动机+状态dp
  2. 反射工厂在数据访问层的应用
  3. java is instance of_详谈Java中instanceof和isInstance的区别
  4. Python稳基修炼的经典案例12(计算机二级、初学者必会的字符文件处理)
  5. 汉化几乎所有编程软件
  6. sklearn下载方法,如果pycharm下载失败的话,你可以看看这里
  7. 从零开始学前端:中括号代替点操作,获取对象,自定义标签属性 --- 今天你学习了吗?(JS:Day3)
  8. 微课|中学生可以这样学Python(3.2节):双分支选择结构
  9. java 网格布局管理器,Java使用网格组布局管理器
  10. php中提取%3cdiv,cmseasy getshell 0day