javascript面向对象(三)

<!doctype html>
<html>
  <head>
    <title>标题</title>
    <meta charset="utf-8">
    <script>
      //判断一个对象是否是数组类型
      //有几种办法:
      var obj1=[];
      var obj2={};
      var obj3={};
          obj3.__proto__=[];
      //typeof(x) 只能区分原始类型,对象和函数——无法区分数组和普通对象
      //console.log(
        //typeof(obj1),typeof(obj2)
      //);

    /*1.用原型对象判断:
      console.log(
        Array.prototype
              .isPrototypeOf(obj1),
        Array.prototype
              .isPrototypeOf(obj2),
        Array.prototype
              .isPrototypeOf(obj3)
      );
    */
    /*2.用构造函数判断:
      console.log(
        obj1 instanceof Array,
        obj2 instanceof Array,
        obj3 instanceof Array
      )
    */
/*3.用内部class属性判断:
      //每个对象内部都有一个class属性
      //class属性记录了创建对象时使用的类型名。
      //var obj=new Array();
      //obj(class:Array)
      //var obj=new Object();
      //obj(class:Object)
      //var obj=new Date();
      //obj(class:Date)
      //只有Object.prototype.toString()才能输出class属性值
      //实现:obj1.toString();
      console.log(
    Object.prototype.toString.call(obj1)
    =="[object Array]",
    Object.prototype.toString.call(obj2)
    =="[object Array]",
    Object.prototype.toString.call(obj3)
    =="[object Array]"
      );
*/
    /*4. Array.isArray(x) ES5*/
      //如果?没有isArray
        //就在?添加isArray,一个参数obj
          return Object.prototype
                      .toString
                      .call(obj1)
                  =="[object Array]";
      document.write(
        Array.isArray(obj1),
        Array.isArray(obj2),
        Array.isArray(obj3)
      );//true false false

    </script>
  </head>
  <body>
    
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值