JavaScript_proto_和prototype到底是什么玩意
_proto_和prototype到底有什么区别啊?是个什么东西啊?
在这里我头也比较大啊,小学语文没学好,所以组织能力比较差劲,所以尽量的咱用代码来解释吧。
function too() {
this.t = 0;
}
var t = new too()
console.log(t._proto_)
console.log(too.prototype)

看了输出以后,都能惊奇的发现,输出的是同一个东西,一个是万物皆有的proto,还有一个就是自身的构造,
也就是说,_proto_这个属性的意思是,去指向自己的父亲创造自己时用的构造方法。
而prototype这个属性的意思就是,我自己生孩子(创建对象)的时候用的构造方法。
看起来有点绕来绕去的,其实说白了就是一个找爸爸怎么创建自己,一个找自己怎么创建儿子,两种东西,所以_proto_这属性能一直往上摸上去,找自己的爸爸的爸爸,爸爸的爸爸的爸爸。
那么我们来简单的试验一下,按照刚才的代码,我用function去创造了too这个对象,而用too的too()这个构造方法,去创建了t这个对象,所以关系是function生了too,too生了t,然后我们在用instanceof去比较一下三者的关系。
console.log(t instanceof too) //true
console.log(too instanceof Function) //true
console.log(t instanceof Function) //true
JavaScript_proto_和prototype到底是什么玩意的更多相关文章
- Javascript中的Prototype到底是什么
Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言.在Javascript中,类和对象看起来没有太多的区别. 什么是prototype: funct ...
- Javascript中的Prototype到底是啥
Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言.在Javascript中,类和对象看起来没有太多的区别. 通常,这样创建一个对象: functi ...
- [JS]_proto_和prototype到底有啥区别
是时候拿出我珍藏多年的这张图了: 首先,要明确几个点: 1.在JS里,万物皆对象.方法(Function)是对象,方法的原型(Function.prototype)是对象.因此,它们都会具有对象共有的 ...
- 【JS】中的原型prototype到底是个啥
一.什么是原型 原型prototype是函数的一个属性,这个属性是一个指针,指向一个对象(原型对象),这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法. 函数也是一种对象.它也是属性的 ...
- RESTful到底是什么玩意??
0. REST不是"rest"这个单词,而是几个单词缩写.: 1. REST描述的是在网络中client和server的一种交互形式:REST本身不实用,实用的是如何设计 RE ...
- Maven到底是个啥玩意
Maven,是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 上面是百度百科对Maven的正式介绍,如果你是Maven初学者,我估计你看完之后心中肯 ...
- 关于JS的prototype
在接触JS的过程中,随着理解的深入会逐渐的理解一些比较深奥的理论或者知识,那么今天我们来介绍一下比较难理解的prototype和constructor. 初步理解: 在说prototype和const ...
- 简单理解js的prototype属性
在进入正文之前,我得先说说我认识js的prototype这个东西的曲折过程. 百度js的prototype的文章,先看看,W3School关于prototype的介绍: 你觉得这概念适合定义js的pr ...
- JS的prototype
初步理解: 在说prototype和constructor之前我们先得看几个例子. 1 2 3 4 function name(obj){ alert(obj)//"uw3c&quo ...
随机推荐
- [Linux]下的StarUML永远使用版
这是Linux下的StarUML,其实windows下的是一样的 请不要用于商业目的 这是Linux下的StarUML 解压之后,这是一个appImage文件,也就是说,双击直接运行的版本 [Bash ...
- IIS 7中添加匿名访问FTP站点
1. 开启FTP和IIS服务: 2.打开IIS 管理器: 我电脑上是IIS 7.5 ,所以选择第一个并点击打开哦. 如果你想知道自己IIS的版本,打开帮助菜单: 3. 新建FTP站点: 4. 填写站点 ...
- 【转】Android Fastboot 与 Recovery 和刷机
1. 首先来看下Android系统的分区: Android系统的分区.jpg Android分区解释.png 安卓系统一般把rom芯片分成7个区,如果再加上内置sd卡这个分区,就是8个: hb ...
- Inno setup 判断系统32位还是64位
[Files] ; Install MyProg-x64.exe -bit mode (x64; see above), ; Check: Is64BitInstallMode 表示是64位windo ...
- Axure8.1.0.3388 授权码
Licensee:www.jb51.net Key:5eKQiVe0zlGqMijERRp6ancI2jGAxhuejGWvk2oWClywQSB/Mrq72wYhj7D9gAKC
- sublime的注册方法 非常好用
摘自:https://blog.csdn.net/weixin_42444922/article/details/81006107 转载 阿东的天空之城 发布于2018-07-11 20:03:43 ...
- php 回调函数结合闭包(匿名函数)的使用示例
<?php /** * php 回调函数结合闭包(匿名函数)的使用 */ function callback( $callback ){ $variable = 'program'; $ret1 ...
- 《深入理解Linux内核》 读书笔记
深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...
- win7安装 nodejs,npm
1. 下载地址:http://nodejs.org/dist/v9.7.1/ 2. 安装 3. 查看是否安装成功,命令行查询 node -v 4. 默认已经安装了npm,直接查询版本 5. 配置np ...
- git本地以及远程分支回滚
转:https://www.cnblogs.com/sunny-sl/p/11236280.html 1. git本地版本回退 Git reset --hard commit_id(可用 git lo ...