JS基础之对象

JS中一切皆为对象,这是一句常说的话。了解JS对象,从这句话开始吧。JS中的基本数据类型如number,bool,字符串,数组,null,undefined等等都是对象。

对象的本质:

带有属性和方法的特殊数据类型,而每一个属性或者方法又可看作是一个键值对,所以能够这样定义:对象是一系列无序键值对的集合javascript

在JS中对象分为两种:

  • JS的内建对象,如:string,Date,Array等
  • 你本身建立的对象html

    JS中如何建立本身的对象:

    1 对象初始化器,这种方式最为简单暴力,直接一系列明显的键值对集合。java

    var obj={
         name:'PengL',
         age:100,
     func:function()
     {
         alert("I am "+obj.name+" and I am  "+obj.age);
     }
     };

    2 构造函数数组

    function person(name,age){
     this.name=name;
     this.age=age;
     this.func=func;
     function func()
     {
         alert("I am "+this.name+" and I am  "+this.age);
     }
     }
     var obj=new person("PengL",100);

    说明:第一种方法是直接建立的一个对象的实例,第二种是经过new构造函数的方式来建立一个对象,而且传入不一样的参数,这样对象对应的属性值就不同。不过要注意的是不要忘了new,否则就是把一个普通函数赋给了obj,而且这时的this指向也是混乱的了。关于this指向的问题能够参考一下做者的另外一篇博客javascript进阶之this函数

    对于构造函数建立对象的方法我还想再进一步介绍一下

    通常在真实的项目中上面demo的写法实际上是不合理的。最好的方式是原型和构造函数混用的方式来作,好比上面的能够改为这样this

    function person(name,age)
     {
     this.name=name;
     this.age=age;   
     }
     person.prototype.func=function(){
         alert("I am "+this.name+" and I am  "+this.age);
     };

    这种方式不只结构清楚,最重要的是还节约了内存,在对象的原型上建立的方法,那么这个方法就是经过该构造函数所建立的全部对象共有的方法了。各个对象有本身独有的name,age属性,有共有的func方法。若是有对原型不熟悉的同窗能够看看这篇廖雪峰大神的做品廖雪峰prototype


最后再作一下总结吧,加深一下印象

  • JS中一切皆对象
  • 对象本质是一系列无序键值对的集合
  • 建立对象有两种常见的方法,初始化器和构造函数(不一样状况来进行选择,并不是老是第二种最好)
相关文章
相关标签/搜索