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

      

      

  • 相关阅读:
    linux 运维
    mariadb replication
    phpmyadmin
    Objective-C设计模式——单例Singleton(对象创建)
    收藏iOS学习资料
    axios拦截器
    vue单页面优化
    html设置http缓存代码
    js数组去重,排序的几种方法
    前端移动端问题
  • 原文地址:https://www.cnblogs.com/rainheader/p/4574719.html
Copyright © 2011-2022 走看看