ProtoType原型和__Proto__原型链的详解
var arr = new Array(12,13,14,15,16,17,18);
var arr2 = new Array(12,13);
arr.sun=function(){
//用原型加Array.prototype.sun=function() 下面的alert(arr2.sun())生效,就不会出现说arr2没有sun方法,这就好像css里面的class给一组元素加样式
//如果只是arr.sun,就好像是行间样式alert(arr2.sun())不会生效,因为他没有想arr那样加sun方法
var reun = null;
for(var i=0;i<this.length;i++){
reun+=this[i]
}
return reun;
} alert(arr.sun())
alert(arr2.sun())
// prototype函数才有的属性(prototype为函数增加方法(共用)) __proto__对象才有的属性(所以函数也有这个__proto__只不过为隐形的)
// 最终他们是相等的 → console.log(__proto__===constructor.prototype) //ture var a = {}
console.log(typeof a.prototype)//undefined
console.log(a.__proto__)//对象集合
console.log(typeof a.__proto__) //object var b = function(){}
console.log(typeof b.prototype)//object
console.log(b.prototype)//b{}
console.log(typeof b.__proto__)//function
console.log(b.__proto__)//function(){} // 原型链
// 因为__proto__是任何对象都有的属性 在js中万物皆对象 所以会形成一个__proto__连起来的链条 递归访问到最后 值为空 var c = function(){}
var d = new c()
console.log(typeof d.__proto__) //object
console.log(d.__proto__)//c() 构造器fucntion c的原型对象
console.log(typeof d.__proto__.__proto__)//object
console.log(d.__proto__.__proto__)//object() 构造器fucntion object的原型对象
console.log(typeof d.__proto__.__proto__)//object
console.log(d.__proto__.__proto__.__proto__)//null
所有对象都有隐形原型(__proto__)
let a = 123
console.log(a.__proto__)
console.log(''.__proto__)
以上都会打印出 该对象所拥有的方法
ProtoType原型和__Proto__原型链的详解的更多相关文章
- 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)
最详尽的 JS 原型与原型链终极详解,没有「可能是」.(一) 第二篇已更新,点击进入第三篇已更新,点击进入
- JS原型与原型链终极详解(转)
JavaScript原型及原型链详解 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object,Function 是JS自带的函数对象. ...
- JS 原型链图形详解
JS原型链 这篇文章是「深入ECMA-262-3」系列的一个概览和摘要.每个部分都包含了对应章节的链接,所以你可以阅读它们以便对其有更深的理解. 对象 ECMAScript做为一个高度抽象的面向对象语 ...
- 第202天:js---原型与原型链终极详解
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 var o1 = ...
- 【repost】JS原型与原型链终极详解
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 function f ...
- JS原型与原型链终极详解
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 function f ...
- js重点--原型链继承详解
上篇说过了关于原型链继承的问题,这篇详解一下. 1. function animals(){ this.type = "animals"; } animals.prototype. ...
- [转] 最详尽的 JS 原型与原型链终极详解
四. __proto__ JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__ 的内置属性,用于指向创建它的构造函数的原型对象. 对象 person1 有一个 __pr ...
- JS原型与原型链终极详解 (转载)
这篇文章需要认认真真仔仔细细的看才能看懂 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函 ...
随机推荐
- iOS 反调试
反调试主要分为两种,第一种阻止调试器附加,第二种是检测是否有调试器存在 1.ptrace是系统用来对运行中的进程进行调试和跟踪的工具,通过ptrace,可以对另一个进程实现调试跟踪.但是里面提供了一个 ...
- 某里巴巴Java工程师常规面试题以及解答
从HR弄来的P6-P7的JAVA工程师题目,分享给大家 1 Spring AOP和IOC的实现方法 http://blog.csdn.net/tarena_lixy/article/details/7 ...
- 【转】Spring Boot 构建应用——快速构建 Spring Boot 应用
Spring Boot 简化了 Spring 应用开发,不需要配置就能运行 Spring 应用,Spring Boot 的自动配置是通过 Spring 4.x 的条件注解 @Conditional 来 ...
- T-SQL语言基础(2)之SQL Server体系结构
SQL Server 体系结构 SQL Server 实例 SQL Server 实例是指安装的一个 SQL Server 数据库引擎/服务.在同一台计算机上可以安装 SQL Server 的多个实例 ...
- python 数组中数字求和是否为零
需求是: 给定一个不少于4个元素的list(4个元素不重复): 请确认是否存在这样的4个元素,使得四数之和为0?如果有打印出符合条件的四个元素,如果没有打印False #!/usr/bin/pytho ...
- 再次聊一聊promise settimeout asycn awiat执行顺序---js执行机制 EVENT LOOP
首先js是单线程 分为同步和异步,异步又分为(macrotask 宏任务 和 microtask微任务 ), 这图还是很清晰嘛,再来一张 总结一下,就是遇到同步先执行同步,异步的丢到一边依次排队,先排 ...
- unittest报告出现dict() -> new empty dictionary错误解决办法
unittest报告出现dict() -> new empty dictionary错误解决办法 说一下原因,这是由于unittest中采用了ddt驱动. 由于版本问题导致 问题如图: 解决办 ...
- ZIP压缩指定路径
using Common; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Quartz; using Quartz.Impl; us ...
- 用php写一个99乘法表
运行结果如下
- Java基础(Java补码)
原码,反码,补码是java数值运算的基础,在计算机程序中,数值运算是基于二进制的,也就是说底层是二进制运算.而数值有正数与负数,二进制只有0和1,如何表示负数,如何进行正负数的运算,这就是原反补的意义 ...