_proto_和prototype的区别_苏颜_前端开发者

1. _proto_和prototype

1. _proto_和prototype

prototype属性是一个静态属性,

prototype属性是一个静态属性,

_proto_属性是一个实例属性。

_proto_属性是一个实例属性。

prototype表示类的原型对象,_proto_表示原型对象中定义的内部属性[prototype]的值。

prototype表示类的原型对象,_proto_表示原型对象中定义的内部属性[prototype]的值。

类的每一个实例都有一个_proto_属性,用于引用创建它的构造方法的prototype属性,也就是该类的原型对象,即存在如下等式:(new Array(“abc”))._proto_===Array.prototype (Array(“abc”)为Array的实例)

类的每一个实例都有一个_proto_属性,用于引用创建它的构造方法的prototype属性,也就是该类的原型对象,即存在如下等式:(new Array(“abc”))._proto_===Array.prototype (Array(“abc”)为Array的实例) (Array(“abc”)为Array的实例)

2.es5中增加的原型处理

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;
                      };
                  }
              }

 

 
 
使用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;
                      };
                  }
              }

 

 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;
                      };
                  }
              }
 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;
                      };
                  }
              }

iftypeof){
iftypeof){
Object.getPrototypeOf
function(object){
return object._proto_;
};
}
else{
Object.getPrototypeOf
function(object){
return object.constructor.prototype;
};
}
}

 

 
 
» 本文来自:前端开发者 » 《_proto_和prototype的区别_苏颜_前端开发者》
» 本文链接地址:https://www.rokub.com/73542.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!