首页 > 其他 > 详细

_proto_和prototype的区别

时间:2019-10-09 18:58:48      阅读:62      评论:0      收藏:0      [点我收藏+]
1. _proto_和prototype
prototype属性是一个静态属性,
_proto_属性是一个实例属性。
prototype表示类的原型对象,_proto_表示原型对象中定义的内部属性[prototype]的值。
类的每一个实例都有一个_proto_属性,用于引用创建它的构造方法的prototype属性,也就是该类的原型对象,即存在如下等式:(new Array("abc"))._proto_===Array.prototype (Array("abc")为Array的实例)
2.es5中增加的原型处理
使用Object.getPrototypeOf()方法可以得到指定的对象的prototype属性
该方法的格式为:Object.getPrototypeOf(obj),该方法是一个静态方法,能获取这个对象的原型
Object.getPrototypeOf(new Array("abc"))===Array.prototype与(new Array("abc"))._proto_===Array.prototype意义相同
用户可使用如下代码实现浏览器兼容
 if(typeof Object.getPrototypeOf!=="function"){
              if(typeof "test"._proto_==="object"){
                   Object.getPrototypeOf=function(object){
                        return object._proto_;
                    };
                }else{
                     Object.getPrototypeOf=function(object){
                        return object.constructor.prototype;
                      };
                  }
              }

 

 
 

_proto_和prototype的区别

原文:https://www.cnblogs.com/yezi111/p/11643431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!