Object.prototype.__proto__ 、Object.prototype和 Object.prototype.constructor

Object.prototype.__proto__:

  实体对象指向造它的构造函数的 prototype属性所指 的对象 ,实例的__proto__是引用构造函数的prototype属性所指对象,

Object.prototype :

  js规定,构造函数有prototype 属性,指向一个对象,这个对象一般就是构造函数的公有成员。

  所以 __proto__  和 prototype 可以指向同一个对象  {key1:value1,key2:value2,......},构造函数的私有和特权函数会被带到每个实例函数中,每个实例都会包含相同的私有和特权特权成员的副本,因而实例越多越占内存,实例是在栈中的,构造函数在堆中,因为构造函数都是实例的引用。

 

Object.prototype.constructor:

   返回一个指向创建了该对象原型的函数引用,返回的是函数本身,不是包含函数名称的字符串;依赖一个对象的 constructor 属性并不安全,因为其可以被赋值,从而改变指向,然后丢失方法。此处略。。。。

(ECMAScript 2015 (6th Edition, ECMA-262)Object.prototype.constructor

 

以下举例谁说明:

//构造函数
var Mother=function(){};     
    //new一个实例
var aSon=new Mother();  //此时aSon继承了Mother里面的prototype属性所指向的代码,引用此代码,aSon.__proto__=Mother.prototype;都相等了,所以指向的是同一个对象


1、Object.prototype.constructor :function(){}
2、Object.prototype :{...}
3、Object.prototype.__proto__ :{...} //Object.prototype就是实例 是全被继承的


一、var aSon={};  //初始化一个对象
二、aSon.__proto__=Mother.prototype; //把Mother.prototype的指向赋值给aSon.__proto__ ,然后两个都指向了一个对象{...}
三、aSon.apply(this); //构造函数Mother把指针指向aSon对象
 

 

转载于:https://www.cnblogs.com/aidanliu/p/6136118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值