码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-14 10:50:03      阅读:135      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!