首页 > 其他 > 详细

走进__proto__属性,看ie是否支持它,谁又来给他归宿

时间:2015-06-14 10:50:00      阅读:1189      评论:0      收藏:0      [点我收藏+]

每一个引用类型的实例中,都有一个指针,指向其原型对象。这个指针在非IE浏览器里通过__proto__表示,而在IE里不提供。

看如下代码:

obj = {};
obj.__proto__.toString = function() {
     return "__proto__";
 }

var ceshi = {};
alert(ceshi);

输出结果就是__proto__。

原因:JavaScript中只有一个Object原型对象。

     第二行,修改了这个原型对象的toString成员变量,而Object原型对象是所有引用类型实例共享的,只有一个,所以其他对象调用toString()也就发生了变化。

IE不提供这个__proto__,这样就不能获取到Object原型对象,也就无法修改这个上级的属性了。这样做就更安全了。

但是有什么方法可以代替么?

  因为__proto__不是标准方法,标准的方法是Object.getPrototypeOf();

  看如下代码:

var obj = {};
console.log(obj.__proto__);//输出Object {}

//等于

Object.getPrototypeOf(obj);//输出Object {}

  

  

 

走进__proto__属性,看ie是否支持它,谁又来给他归宿

原文:http://www.cnblogs.com/rainheader/p/4574719.html

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