prototype 和 __proto__
/*
* 1.构造函数里有属性及方法----->其构造的实例对象直接通过new构造时获得这些属性和方法
* 2.构造函数里的原型prototype----->这个原型对象:包括1).原型对象里的属性和方法 --->实例化对象里的__proto__指向这个原型对象,可以访问这里的属性和方法
* 2).constructor构造器--->指向构造函数
* 3).__proto__---->Object这个构造函数的原型对象Object.prototype
*
* 3.构造函数里的__proto__----->指向构造他的构造函数的原型对象---->Function.prototype
*
*
* 4.实例对象的原型__proto__---->指向构造他的构造函数的原型对象---构造函数的prototype
* 实例化对象与构造函数之间没有直接联系,通过原型对象进行联系,这就是原型链
*
* 5.改变原型的指向实现继承:将一个构造函数的prototype指向一个实例化对象(a),那么由这个构造函数构造的实例化对象(b)的__proto__就指向了
* 这个实例化对象(a),由此b可以得到a的属性和方法,并且可以通过a的__proto__获得a的构造函数原型prototype里的属性和方法
*
* 6.prototype和__proto__
*
* prototype是函数(普通函数或构造函数或方法)特有的原型--->指向一个原型对象,即prototype对象:里面包含着可以继承的原型属性和方法
* prototype的指向可以改变,通过改变prototype的指向,可以形成多级的原型链,实现多代的继承
*
* __proto__是对象特有的隐式原型,指向构造这个对象的构造函数的prototype
*
* 一个实例化对象的原型链就是通过__proto__的这个指向得出的,这样实例化对象可以得到构造函数原型对象里的属性和方法,实现继承
*
*
*
* 7.函数可以看成一个对象,那么他的__proto__指向哪里呢?指向构造他的构造函数的prototype,所以就指向Function.prototype
* 所有的函数都可以看成是Function的一个实例化对象
* 另外,Function是其自身的构造函数,Function.__proto__ 就指向其自身的原型对象Function.prototype
* console.dir(Function.prototype == Function.__proto__); 结果为true
*
* 8. 对象的__proto__会指向指向构造这个对象的构造函数的prototype,那么原型链最终的原型对象prototype这个对象的__proto__指向
* 哪里呢?------>指向Object.prototype
* 即原型对象是Object这个构造函数的实例化对象
* Object.prototype.__proto__最终为null
*
*
*
*
* */

prototype 和 __proto__的更多相关文章
- js中的prototype和__proto__
var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...
- JS的prototype和__proto__ Constructor
一.prototype和__proto__的概念 prototype是 注意是 只有函数的一个属性才有的(每个函数都有一个prototype属性),这个属性是一个指针,指向一个普通对象并且不是原型对象 ...
- prototype和__proto__
一.prototype和__proto__的概念 prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象.它是显示修改对象的原型的属性. __p ...
- Js中Prototype、__proto__、Constructor、Object、Function关系介绍
一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的proto ...
- 面向对象的程序设计(二)理解各种方法和属性typeof、instanceof、constructor、prototype、__proto__、isPrototypeOf、hasOwnProperty
//理解各种方法和属性typeof.instanceof.constructor.prototype.__proto__.isPrototypeOf.hasOwnProperty. //1.typeo ...
- 【原创】javascript——prototype与__proto__
一定要注意这个概念:javascript世界里,万物皆对象, function是对象,prototyp也是对象. 新建构造函数,并实例 var Person = function(){} var ...
- 在 JavaScript 中 prototype 和 __proto__ 有什么区别
本文主要讲三个 问题 prototype 和 proto function 和 object new 到底发生了什么 prototype 和 proto 首先我们说下在 JS 中,常常让我们感到困惑的 ...
- 原型及原型链,以及prototype和__proto__属性(笔记便于以后复习)
首先,js的数据结构有 原始类型(5种):Boolean.Number.String.Null.Underfined, 然后是引用类型:Array.Date.Error.RegExp.Function ...
- 04面向对象编程-01-创建对象 和 原型理解(prototype、__proto__)
1.JS中对象的"不同":原型概念 从Java中我们可以很好地去理解 "类" 和 "实例" 两个概念,可是在JavaScript中,这个概念 ...
- 【前端】JavaScript中prototype和__proto__的区别
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/prototype.html 经常有小伙伴问我关于prototype和__proto__的问题,觉得有必要写一篇博客 ...
随机推荐
- oracle优化(一)
非原创 1. 选用合适的ORACLE优化器 ORACLE的优化器有3种: a. RULE(基于规则)b. COST(基于成本) c. CHOOSE(选择性) 选择缺省的优化器,可以通过对init.or ...
- 大数据学习笔记5 - Spark
Spark是一个基于内存计算的大数据并行计算框架.所以,Spark并不能完全替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型. 在实际应用中,大数据处理无非是以下几个类型: 复 ...
- Juniper BGP配置
网络拓扑如下: XRV1配置 =========================================================== root@XRV1# run show confi ...
- IDEA中添加javap反编译
- flutter Dialog里ListView的问题
showDialog( context: context, builder: (ctx) { return // Dialog( // child: Container( // padding: Ed ...
- Eclipse中查看JDK类库源代码
在Eclipse中编写代码时,有时候可能需要了解JDK类库的一些特性,这个时候可以通过查看类的源代码来了解JDK类的详细信息.本文主要内容就是如何直接在Eclipse开发环境中查看JDK类库源代码. ...
- angular $digest 运行10次货10次以上会抛出异常
今天在做项目时,遇到一个问题,红圈处输入其他数字(n多次)也不会报异常,但是有一种特例,即0,1,0,1,0,1这种顺序输入时,输入第13次时,页面计算结果(蓝色圆圈)不会更新,困扰了1天多这个问题, ...
- linux wc使用详解
转载:https://www.cnblogs.com/peida/archive/2012/12/18/2822758.html Linux系统中的wc(Word Count)命令的功能为统计指定文件 ...
- python ftp 传输文件
# -*- coding: utf-8 -*- # 本地bytes 数据上报服务器同时创建文件from ftplib import FTP import time, _io from constant ...
- No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so ,needed by '../bin/generate_pointcloud解决方法
这是/usr/lib/x86_64-linux-gnu/文件夹内没有这个libproj.so 库,先在该文件夹内搜索是否有同名不同版本的库,如果有 ,可以使用ln -s在该文件夹内部对存在的库链接到一 ...