JavaScript进阶:数据类型(3)

    注意:不同window之间和跨iframe之间是不可以使用instanceof的,虽然看着是同一个对象但是在不同window之间和跨iframe之间是不同的对象,每个iframe下都有自己的一套原型链,跨frame实例化的对象彼此是不共享原型链,因此会返回false

  3.Object.prototype.toString 函数方法

    Object.prototype.toString.call()或者Object.prototype.toString.apply()

    例如:

    Object.prototype.toString.call([])     //"[object Array]"

    Object.prototype.toString.call(function(){})  //"[object Function]"

    Object.prototype.toString.call(undefined)  //"[object Undefined]"

    Object.prototype.toString.call(null)      //"[object Null]"

    注意:1.解决了跨iframe 失效的问题

       2.IE 6,7,8下  Object.prototype.toString.call(null或undefined)      //"[object Object]"

  4.constructor方法

    function A(){}; 

    function B(){}; 

    A.prototype = new B(); 

    var aObj = new A(); 

    --------------------------------

    aObj.constructor === B; //true; 

    aObj.constructor === A; //false;

        注意:类继承时会出现问题

  5.duck type(鸭子类型)

    比如检测数组时,我们可以检测他有没有push()方法等等

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c669a1cc2de065607fc7c582da430731.html