zoukankan      html  css  js  c++  java
  • JavaScriptinstanceof

    //alert(test.prototype);

    //alert(Object.prototype);

    //alert(Function.prototype);

    //alert(test.__proto__);

    //alert(Object.__proto__);

    //alert(Function.__proto__);

    //alert(Object.prototype.__proto__);

    //alert(Object.prototype.constructor);

    alert(Function.prototype.__proto__);

    alert(Function.prototype.__proto__.__proto__);

    alert(Function.__proto__===Object.__proto__);

    alert(Function instanceof Function);//true 

    alert(Function instanceof Object);//true    

    alert(Object instanceof Function);//true 

              

    function Foo() {};

    var foo = new Foo();

    alert(foo instanceof Foo); // true

    alert(foo instanceof Function); // false

    alert(foo instanceof Object); // true

    alert(Foo instanceof Function); // true

    alert(Foo instanceof Object); // true

     

     


    instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象Bprototype指向的对象是否在对象A[[prototype]]链上。如果在,则返回true,如果不在则返回false。不过有一个特殊的情况,当对象Bprototypenull将会报错(类似于空指针异常)

    <script>

    Function.prototype.method = function(name,func){

    //mark_1

           this.prototype[name] = func;

           return this;

    };

    String.method("trim",function(){                         

           return this.replace(/^\s+|\s+$/g,'');

    });

    String.prototype.test=function()

    {

           return this+"你好";

    }

    alert(" test ".test());

    </script>

  • 相关阅读:
    sicp-py
    Ubuntu下找不到ttyUSB*问题解决
    Mysql基本命令及数据库存储位置
    open-vm-tools与VMware Tools
    64位ubuntu安装交叉编译工具链,显示找不到命令
    VMware Tools 继续运行脚本未能在虚拟机中成功运行。
    VMware Workstation 14安装VMware Tools
    VMware Workstation14 安装Ubuntu18.04
    Linux安装Sqlite
    mysql中文乱码
  • 原文地址:https://www.cnblogs.com/syf/p/2709334.html
Copyright © 2011-2022 走看看