prototype
    prototype是函数对象上面预设的对象属性
    1. JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object)
    2. JS中所有的东西都由Object衍生而来, 即所有东西原型链的终点指向Object.prototype
    3. JS中构造函数和实例(对象)之间有微妙的关系,构造函数通过定义prototype来约定其实例的规格, 再通过 new 来构造出实例, 他们的作用就是生产对象。而构造函数(方法)本身又是方法(Function)的实例, 因此也可以查到它的__proto__(原型链)

Object / function F(){}  这样子的就是构造函数,一个是JS原生API提供的,一个是自定义的
       new Object() / new F()   这样子的就是实例

实例就"只能"查看__proto__来得知自己是基于什么prototype被制造出来的,而"不能"再重新定义实例的prototype妄想创造出实例的实例了。

原型

是一个对象上面的原型,这个原型通常是它的构造器的prototype属性

原型链
    function foo(){};
    foo.prototype.z = 3;
    var obj = new foo();

通过new构造对象(实例)的特点是,obj的原型(prototype)指向了构造器的prototype属性,也就是foo.prototype,而foo.prototype则指向了原始的Object.prototype,Object.prototype也有原型,为null。这就是一整个原型链。

什么时候用 prototype
    使用 prototype的好处是不会额外产生内存,所有实例化后的对象都会从原型上继承这个方法。也就是需要一个子类拥有父类的某些特性(同种特性可以覆盖),又可以添加自己的特性,而不会影响父类时候使用prototype。
    Prototype通常用来解决一个问题:对象的创建比较耗费资源。比如,对象创建的时候需要访问数据库、需要读取外部文件、需要使用网络,这些都是比较耗费时间和内存的。如果可以用clone来解决,就方便多了。当需要创建很多 拥有相同属性的对象时候需要clone。

将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype相关推荐

  1. prototype 是什么东西,原型链的理解,什么时候用 prototype

    prototype     prototype是函数对象上面预设的对象属性     1. JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object)     ...

  2. 原型和原型链的理解(有图清晰明了)

    记住一句话:万物皆对象 对于原型和原型链,我们要知道一下几个:函数对象,实例对象.原型对象 1)函数对象--就是平时称的对象: 2)实例对象--new出的对象或者{ }: 3)原型对象--所有的函数对 ...

  3. 原型链的理解(全面)

    创建一个实例 使用构造函数创建一个实例 function Star(age,name) {this.age = agethis.name = namethis.sing = function(){co ...

  4. JS 中原型和原型链深入理解

    作者: erdu segmentfault.com/a/1190000014717972 首先要搞明白几个概念: 函数(function) 函数对象(function object) 本地对象(nat ...

  5. JS原型、原型链深入理解

    原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"prototype"属性,函数对象有"prototype"属性,原型对象有&q ...

  6. 【Day03】使用原型最大的好处及原型链的理解

    面试题 使用原型最大的好处,原型链的理解 题解 原型优缺点简单分析 通过原型链继承的方式,原先存在父类型的实例中的所有属性和方法,现在也能存在于子类型的原型中了: 在通过原型链实现继承时,原型实际上会 ...

  7. js原型和原型链的理解

    prototype 每个函数都有一个prototype属性,函数的prototype属性是在定义函数时解析器自动添加的,对应着一个对象,这个对象就是我们所谓的原型对象.它默认指向一个object空对象 ...

  8. 讲一下prototype是什么东西,原型链的理解,什么时候用prototype?

    js中,prototype是函数的原型.每个函数都是一个对象,并且拥有一个属性prototype,该属性也是一个对象,是属性和方法的集合. 原型链:实例对象的原型__proto__指向new出该实例对 ...

  9. JS中prototype、__proto__以及原型链

    1.对象的三角恋关系 1.每个"构造函数"中都有一个默认的属性, 叫做prototype prototype属性保存着一个对象, 这个 对象 称之为"原型对象" ...

最新文章

  1. spark广播变量的原理_spark使用广播变量
  2. 检查用户是否正在使用IE
  3. Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
  4. [html] 你是如何理解html与css分离的?
  5. 语言编程思维陈萌_这本书告诉你,计算机为何能读懂人类语言,编程思维让你更聪明...
  6. Linux实时查看日志,访问前10IP 和相关命令
  7. Java函数式编程-三更草堂-学习笔记
  8. 学校图书借阅管理系统(MySQL)
  9. 偏最小二乘法的几种解释
  10. java 解析大xml文件_java-通过网络解析大型XML文件
  11. idea去掉UML类图的虚线箭头(依赖关系)
  12. fatal: ‘http://git.#####.com/test-auto/stability.git/‘ 鉴权失败
  13. 通用权限管理系统项目简单介绍
  14. 怎么查看网站服务器开了哪些端口,怎么查看服务器开了哪个端口
  15. 雷神五代笔记本U盘重装系统图文教程
  16. ps 海报文字设计技巧
  17. 插入k宝显示连接农行服务器失败,农行k宝插到win10电脑上没反应无法转账怎么办...
  18. Windows 故障恢复控制台应用详解
  19. JavaWeb-HTML常用标签了解(一)
  20. 尚硅谷java基础学习笔记

热门文章

  1. 更亮、更耐光!Enzo自噬检测试剂盒功能和应用说明
  2. 大话西游虚拟机 无法登陆解 进不去、黑屏、决办法
  3. DLNA 和如何在xp win7 搭建 DLNA服务器
  4. 婴儿EEG数据的多元模式分析(MVPA):一个实用教程
  5. 过NP 系列之一---搞定QQ游戏系列(寻仙,DNF等等)驱动保护TesSafe.sys
  6. 和元生物科创板上市:市值108亿 腾讯与张江科投是股东
  7. matlab mean函数
  8. 华为服务器raid卡
  9. No symbol table is loaded. Use the “file“ command
  10. 电力电子助力小米快充生态,磁材创新驱动未来无线充电