zoukankan      html  css  js  c++  java
  • JavaScript对象基础知识总结

    1、什么叫JavaScript对象?

      定义:名值对的集合。简单的讲就是容纳属性值和属性值的容器,这些属性可以是无序的,基本上JavaScript中所有的事物都可以看成对象。

      拓展:我们经常说,数组也是对象,那么,我们从对象定义中名值对的角度看,数组与普通的对象相比,他的名值对是由顺序的而已,即每一个arry[i]对应着固定的数值,所以,可以说,数组是特殊的对象,特殊就特殊在他的名值对是有序的,现在再看数组是不是简单多了呢?

      

    2、创建对象 的四种方法:

      分别为:

      ①对象字面量法;②new关键字创建法;③构造函数法;④ES5提供的Object.creat()方法;

      ①对象字面量法:

      创建方法:

      var  school={name:'cumt',

            'first-road':'大学路',

            Iscollege:true,

            students:50000,

            };

      需要注意的几个点:

      1、属性名如果是以数字开头,则属性名必须加上单引号或者双引号;如果属性名中包含JavaScript的保留字或者非法字符(-等字符)必须要加单引号或者双引号。其他情况可以不必加单引号或者双引号。

      2、属性值如果是字符串,则属性值必加单引号或者双引号;如果属性值是数字、布尔值、undefined、NaN或者null则可以不用加引号。

      3、属性之间分隔用逗号分开,而不是用分号(切记)。

      ②通过var关键字和new关键字创建对象:

      创建方法:

      var person=new Object(){name:'josn',

              sex:male,

              'girl-friend':lily,

              hometown:'江苏',

            };

      ③构造函数法:

      var preson=function(){name:'AJax',

                valuble:true,

                times:'often',

            };

    说明:

    1、前面说到数组是特殊的对象,那么在这儿,聪明的大家肯定早就看出来了,函数它也是对象,其实仔细想想:函数是一种对象,而我们却可以利用函数来定义一个对象,乍一听,咋感觉这么像数学里面的充分必要的关系,但实际上用这种关系解释他们是解释不通的也是没必要的,只要理解:函数是一种对象,通过函数可以构造对象,这就够了。关于函数的总结稍后会在下一贴随笔中细说。

    2、既然第一条说到了JavaScript的对象,咱们就来理一理JavaScript中到底有多少内置对象(面试的时候在这个问题上栽过一回,当时就问蒙了,只零零散散的回答了一部分):JavaScript中的内置对象有17个之多,常用的是Array对象、Date对象、Regexp(正则表达式)对象、String对象、Global对象 ,Object对象,Arguments对象,Boolean对象,Error对象,Function对象,Math对象,Number对象等,具体的内置对象使用方法请参照:https://www.cnblogs.com/Arther-J/p/5388633.html

      ④通过Object.create()方法创建对象:

      在ES5中,提供了一种创建对象的新方法:通过Object.create()创建对象,使用方法如下:

      var dream=Object.create({owner:'mine',

                      distance:'step',

                     method:'天助自助者',

                 });

    3、对象属性的访问、添加、修改、删除、遍历操作方法

      通例:

      var  obj={name:'攻城狮',

          age:18,

          sex:'male',

          hobby:'fishing',

        };

      ①对象属性的访问:

      方法为:访问对象的属性时,方法有两种:对象名.属性名    或者   对象名.['属性名']    无论是用  点   的形式还是方括号的形式都是可以的,至于这俩有啥区别,待会儿咱在慢慢扯。

    例:我要得到obj这个对象中的age属性的属性值,我可以这样写:console.log(obj.age);

                       当然我也可以这样写:console.log(obj['age']);

      得到的结果是一样的,都是   18.

      ②添加对象的属性:

       例:我们想要给上面的obj对象中添加一个sayhi的属性,我们可以这样做:

        obj.sayhi='hello';

        访问:console.log(obj.sayhi);       结果为:hello

      ③修改对象的属性值:

      修改对象属性值其实就是对对象属性值进行新的赋值,如果对象中这个属性原来就存在,我们称之为修改属性值,那么如果这个属性原来在对象中压根就没有,那么这就是上面刚刚说的添加对象的属性。

      例如:我们现在想把obj的sex属性名的值换成female,我们可以这么写:

      obj.sex='female';

      相当于重新给sex属性名赋了一个值

      这个时候我们再访问:console.log(obj.sex);就会发现结果变成了  female

      ④删除对象的属性:

      我们如果想要删除对象中原来存在的某个属性,JavaScript提供的方法是delete

      例如,我们现在想把上面obj的hobby的属性删掉

      在删掉之前呢,我们先来访问一下obj的属性,看看他的结果,方便和删除后做对比

      console.log(obj.hobby);    结果正如大家所预料的,是  fishing

      那,我们来删除hobby属性,方法是:

          delete  obj.hobby;

      这会儿咱再来访问:

        console.log(obj.hobby);   就会发现结果变成了  undefined,我们删除了hobby属性,访问了一个不存在的属性,结果自然是undefined

      ⑤遍历对象的属性:

      遍历 JavaScript 对象中的属性没有其他语言那么简单,因为两个因素会影响属性的遍历:对象属性的属性描述符 (property descriptor) 的 [[Enumerable]] 特性为 true (可枚举)才能被 for-in 访问;如果在对象本身没有找到属性,接下来会在原型链上查找,访问属性时会沿着整个原型链从下到上查找属性。所以说遍历属性时,要考虑这两个因素。

      下面我们就来试试,使用for..in取出obj对象中的全部自有属性和属性值:

      var x;

      for(x in obj){

      document.write(i+':'+house[i]+';<br/>');

      };

     结果为:

    name:攻城狮;
    age:18;
    sex:female;
    sayhi:hello;

    写在末尾:

    本篇关于对象的知识总结都是些比较基础的东西,适合于初学者,希望各位前辈、高手、老师指点分享经验和看法,也欢迎在评论区交流看法。

  • 相关阅读:
    代码重构(转)
    Apache负载均衡 配置
    恒久的忍耐
    setInterval全面的介绍
    引用 110个Oracle 常用函数的总结
    ssl和tls
    JSTL
    java异常处理的陋习(转载)
    Java 6 JVM参数选项大全(中文版)
    liunx基础常用命令
  • 原文地址:https://www.cnblogs.com/yezibucunzai/p/8643132.html
Copyright © 2011-2022 走看看