zoukankan      html  css  js  c++  java
  • typeof 和 instanceof 的区别

    在JavaScript中我们想得到一个变量的类型,我们一般会用typeof 得到这个类型的 字符串,但是对于引用类型,typeof始终会返回一个"object",在我们js中有十个内置对象,我们无法分清楚他们具体是哪个对象,所有instanceof出现了。

    1.instanceof方法能准备的识别变量的所属具体对象,示例

    var num = new Number(10);
    console.log(num instanceof Number);//返回true
    var num = 10;
    console.log(typeof num); // number

    instanceof虽然不像typeof那样灵活,但是在typeof返回"object"的时候,instanceof可以准确的分清楚变量所属的对象。

    2.通俗来讲,instanceof就是判断变量是否属于某种类型。

    function Foo(){}
    var foo = new Foo();
    console.log(foo instanceof Foo); // true

    更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型

    3.在继承关系中instanceof的作用

    function Aoo(){};
    function Foo(){};
    Foo.prototype = new Aoo();//原型继承
    
    var foo = new Foo();
    console.log(foo instanceof Foo);// true
    console.log(foo instanceof Aoo);//true

    在多层关系中也可以用instanceof

    console.log(Object instanceof Object);//true 
    console.log(Function instanceof Function);//true 
    console.log(Number instanceof Number);//false 
    console.log(String instanceof String);//false 
     
    console.log(Function instanceof Object);//true 
     
    console.log(Foo instanceof Function);//true 
    console.log(Foo instanceof Foo);//false
  • 相关阅读:
    研究table-cell和overflow
    自己封装jquery的一些方法 链式调用模式
    简单的抖动运动 主要利用offset left 和 setTimeout
    闭包的讲解与简单实用(重新理解)
    操作iframe 的方法与兼容性
    360度全景图片
    数组排序
    怎么让链式调用setTimeout停止
    setInterval 和 setTimeout
    重力碰撞运动的疑惑
  • 原文地址:https://www.cnblogs.com/czy960731/p/9303096.html
Copyright © 2011-2022 走看看