将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype
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相关推荐
- prototype 是什么东西,原型链的理解,什么时候用 prototype
prototype prototype是函数对象上面预设的对象属性 1. JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object) ...
- 原型和原型链的理解(有图清晰明了)
记住一句话:万物皆对象 对于原型和原型链,我们要知道一下几个:函数对象,实例对象.原型对象 1)函数对象--就是平时称的对象: 2)实例对象--new出的对象或者{ }: 3)原型对象--所有的函数对 ...
- 原型链的理解(全面)
创建一个实例 使用构造函数创建一个实例 function Star(age,name) {this.age = agethis.name = namethis.sing = function(){co ...
- JS 中原型和原型链深入理解
作者: erdu segmentfault.com/a/1190000014717972 首先要搞明白几个概念: 函数(function) 函数对象(function object) 本地对象(nat ...
- JS原型、原型链深入理解
原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"prototype"属性,函数对象有"prototype"属性,原型对象有&q ...
- 【Day03】使用原型最大的好处及原型链的理解
面试题 使用原型最大的好处,原型链的理解 题解 原型优缺点简单分析 通过原型链继承的方式,原先存在父类型的实例中的所有属性和方法,现在也能存在于子类型的原型中了: 在通过原型链实现继承时,原型实际上会 ...
- js原型和原型链的理解
prototype 每个函数都有一个prototype属性,函数的prototype属性是在定义函数时解析器自动添加的,对应着一个对象,这个对象就是我们所谓的原型对象.它默认指向一个object空对象 ...
- 讲一下prototype是什么东西,原型链的理解,什么时候用prototype?
js中,prototype是函数的原型.每个函数都是一个对象,并且拥有一个属性prototype,该属性也是一个对象,是属性和方法的集合. 原型链:实例对象的原型__proto__指向new出该实例对 ...
- JS中prototype、__proto__以及原型链
1.对象的三角恋关系 1.每个"构造函数"中都有一个默认的属性, 叫做prototype prototype属性保存着一个对象, 这个 对象 称之为"原型对象" ...
最新文章
- spark广播变量的原理_spark使用广播变量
- 检查用户是否正在使用IE
- Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
- [html] 你是如何理解html与css分离的?
- 语言编程思维陈萌_这本书告诉你,计算机为何能读懂人类语言,编程思维让你更聪明...
- Linux实时查看日志,访问前10IP 和相关命令
- Java函数式编程-三更草堂-学习笔记
- 学校图书借阅管理系统(MySQL)
- 偏最小二乘法的几种解释
- java 解析大xml文件_java-通过网络解析大型XML文件
- idea去掉UML类图的虚线箭头(依赖关系)
- fatal: ‘http://git.#####.com/test-auto/stability.git/‘ 鉴权失败
- 通用权限管理系统项目简单介绍
- 怎么查看网站服务器开了哪些端口,怎么查看服务器开了哪个端口
- 雷神五代笔记本U盘重装系统图文教程
- ps 海报文字设计技巧
- 插入k宝显示连接农行服务器失败,农行k宝插到win10电脑上没反应无法转账怎么办...
- Windows 故障恢复控制台应用详解
- JavaWeb-HTML常用标签了解(一)
- 尚硅谷java基础学习笔记
热门文章
- 更亮、更耐光!Enzo自噬检测试剂盒功能和应用说明
- 大话西游虚拟机 无法登陆解 进不去、黑屏、决办法
- DLNA 和如何在xp win7 搭建 DLNA服务器
- 婴儿EEG数据的多元模式分析(MVPA):一个实用教程
- 过NP 系列之一---搞定QQ游戏系列(寻仙,DNF等等)驱动保护TesSafe.sys
- 和元生物科创板上市:市值108亿 腾讯与张江科投是股东
- matlab mean函数
- 华为服务器raid卡
- No symbol table is loaded. Use the “file“ command
- 电力电子助力小米快充生态,磁材创新驱动未来无线充电