zoukankan      html  css  js  c++  java
  • 走进__proto__属性,看ie是否支持它,谁又来给他归宿

    每一个引用类型的实例中,都有一个指针,指向其原型对象。这个指针在非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 {}
    

      

      

  • 相关阅读:
    P1071 潜伏者
    P2199 最后的迷宫
    推荐
    T150191 求和
    T150189 养猪
    P1106 删数问题
    NOIP 2018 提高组初赛试题胡谈
    结题报告
    博客迁移公告
    简单实用算法——用队列实现栈
  • 原文地址:https://www.cnblogs.com/rainheader/p/4574719.html
Copyright © 2011-2022 走看看