Js基礎之對象

JS中一切皆為對象,這是一句常說的話。了解JS對象,從這句話開始吧。JS中的基本數據類型如number,bool,字符串,數組,null,undefined等等都是對象。

對象的本質:

帶有屬性和方法的特殊數據類型,而每個屬性或者方法又可看做是一個鍵值對,因此可以這樣定義:對象是一系列無序鍵值對的集合

在JS中對象分為兩種:

  • JS的內建對象,如:string,Date,Array等
  • 你自己創(chuàng)建的對象

JS中如何創(chuàng)建自己的對象:

1 對象初始化器,這種方式最為簡單暴力,直接一系列明顯的鍵值對集合。

    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);

說明:第一種方法是直接創(chuàng)建的一個對象的實例,第二種是通過new構造函數的方式來創(chuàng)建一個對象,并且傳入不同的參數,這樣對象對應的屬性值就不一樣。不過要注意的是不要忘了new,不然就是把一個普通函數賦給了obj,并且這時的this指向也是混亂的了。關于this指向的問題可以參考一下作者的另一篇博客javascript進階之this

對于構造函數創(chuàng)建對象的方法我還想再進一步介紹一下

一般在真實的項目中上面demo的寫法其實是不合理的。最好的方式是原型和構造函數混用的方式來做,比如上面的可以改成這樣

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

這種方式不僅結構清楚,最重要的是還節(jié)約了內存,在對象的原型上創(chuàng)建的方法,那么這個方法就是通過該構造函數所創(chuàng)建的所有對象共有的方法了。各個對象有自己獨有的name,age屬性,有共有的func方法。如果有對原型不熟悉的同學可以看看這篇廖雪峰大神的作品廖雪峰


最后再做一下總結吧,加深一下印象
  • JS中一切皆對象
  • 對象本質是一系列無序鍵值對的集合
  • 創(chuàng)建對象有兩種常見的方法,初始化器和構造函數(不同情況來進行選擇,并非總是第二種最好)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 博客內容:什么是面向對象為什么要面向對象面向對象編程的特性和原則理解對象屬性創(chuàng)建對象繼承 什么是面向對象 面向對象...
    _Dot912閱讀 1,538評論 3 12
  • 1,javascript 基礎知識 Array對象 Array對象屬性 Arrray對象方法 Date對象 Dat...
    Yuann閱讀 1,157評論 0 1
  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關的對象共享這一特性,可以實現(xiàn)繼承,這種實現(xiàn)繼承的...
    magic_pill閱讀 1,133評論 0 3
  • 當我寫完那篇文章:《當我們談論職業(yè)的時候,到底在談論什么?》發(fā)在簡書APP和個人公眾號之后,我迎來了一記重拳,老公...
    楊帆叨叨閱讀 630評論 0 2
  • 今天7月25日,比較幸運的是,今天是入伏以來較涼快的一天,我們創(chuàng)城小分隊八點半準時到達公司,根據公司要求要把...
    daisy京京閱讀 510評論 0 0

友情鏈接更多精彩內容