詳細的JavaScript基礎語法-對象、

對象的相關概念

什麼是對象?
在 JavaScript中,對象是一組無序的相關屬性和方法的集合,所有的事物都是對象,例如字符串、數值、數組、函數等。 對象是由屬性和方法組成的。

  • 屬性:事物的特徵,屬性就是內存中的變量(常用名詞)
  • 方法:事物的行爲,方法是內存中的函數(常用動詞)
		  var obj = {
		      "name":"小李",
		      "sex":"男",
		      "age":18,
		      "height":170;
		      
		  }

對象中爲每項數據設置了屬性名稱,可以訪問數據更語義化,數據結構清晰,表意明顯,方便開發者使用。JS中的對象表達結構更清晰,更強大。

創建對象的三種方式

  1. 利用字面量創建對象

var 對象名 = { 屬性名:屬性值 }
花括號 { 這裏麪包含了表達這個具體事物(對象)的屬性和方法;}
{ } 裏面採取鍵值對的形式表示

  • 鍵:相當於屬性名
  • 值:相當於屬性值,可以是任意類型的值(數字類型、字符串類型、布爾類型,函數類型等)
             //創建一個star對象
			var star = {
			    name : '小李',//以鍵值對的方式儲存的
			    age : 18,
			    sex : '男',
			    sayHi : function(){
			        alert('大家好啊~');
			    }
			};
			//調用star對象中的具體數據
		console.log(star.name) // 調用star的name屬性
		console.log(star['name']) // 調用star的 name屬性
		star.sayHi(); //調用方法一定要加括號
  • 上述對象中屬性的兩種調用方法
  1. 對象.屬性名 、這個小點 . 就理解爲“
  2. 對象[‘屬性名’],注意方括號裏面的屬性必須加引號
  • 調用對象的方法

**對象.方法名() ,注意這個方法名字後面一定加括號

  • 變量、屬性、函數、方法總結
  • 屬性是對象的一部分,而變量不是對象的一部分,變量是單獨存儲數據的容器
  • 變量:單獨聲明賦值,單獨存在
  • 屬性:對象裏面的變量稱爲屬性,不需要聲明,用來描述該對象的特徵

方法是對象的一部分,函數不是對象的一部分,函數是單獨封裝操作的容器

  • 函數:單獨存在的,通過“函數名()”的方式就可以調用
  • 方法:對象裏面的函數稱爲方法,方法不需要聲明,使用“對象.方法名()”的方式就可以調用,方法用來描述該對象的行爲和功能。
  1. 利用 new Object 創建對象
    1、創建空對象
    2、給空對象添加屬性和方法
				var andy = new Obect();
				andy.name = '小李';
				andy.age = 18;
				andy.sex = '男';
				andy.sayHi = function(){
				    alert('大家好啊~');
				}

注意:

  • Object() :第一個字母大寫
  • new Object() :需要 new 關鍵字
  • 使用的格式:對象.屬性 = 值;
  1. 利用構造函數創建對象
  • 構造函數

** 構造函數:是一種特殊的函數,主要用來初始化對象,即爲對象成員變量賦初始值,它總與 new 運算符一起使用。我們可以把對象中一些公共的屬性和方法抽取出來,然後封裝到這個函數裏面。

  • 構造函數的封裝格式:
		function 構造函數名(形參1,形參2,形參3) {
		     this.屬性名1 = 參數1;
		     this.屬性名2 = 參數2;
		     this.屬性名3 = 參數3;
		     this.方法名 = 函數體;
		}

-構造函數的調用格式

       //obj接收構造函數創建的對象
       var obj = new 構造函數名(實參1,實參2,實參3)

注意事項

  1. 構造函數約定首字母大寫。
  2. 函數內的屬性和方法前面需要添加 this ,表示當前對象的屬性和方法。
  3. 構造函數中不需要 return 返回結果。
  4. 當我們創建對象的時候,必須用 new 來調用構造函數。

其他

  • 構造函數,如 Stars(),抽象了對象的公共部分,封裝到了函數裏面,它泛指某一大類(class)
  • 創建對象,如 new Stars(),特指某一個,通過 new 關鍵字創建對象的過程我們也稱爲對象實例化

new關鍵字的執行步驟

> 1.  new 構造函數可以在內存中創建了一個空的對象
> 2. this 就會指向剛纔創建的空對象
> 3. 執行構造函數裏面的代碼 給這個空對象添加屬性和方法
> 4. 返回這個對象
  // new關鍵字執行過程
        // 1. new 構造函數可以在內存中創建了一個空的對象 
        // 2. this 就會指向剛纔創建的空對象
        // 3. 執行構造函數裏面的代碼 給這個空對象添加屬性和方法
        // 4. 返回這個對象
        function Star(uname, age, sex) {
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function(sang) {
                console.log(sang);

            }
        }
        var ldh = new Star('劉德華', 18, '男');

遍歷對象

for…in 語句用於對數組或者對象的屬性進行循環操作。
語法:
for (變量 in 對象名字) {
// 在此執行代碼
}

語法中的變量是自定義的,它需要符合命名規範,通常會將這個變量寫爲 k 或者 key。

		for (var k in obj) {
		    console.log(k);      // 這裏的 k 是屬性名
		    console.log(obj[k]); // 這裏的 obj[k] 是屬性值
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章