對象的概述
-
在JavaScript中,對象是一組無序的相關屬性和方法的集合,所有的事物都是對象,例如:字符串、數值、數組、函數等。
-
對象是由屬性和方法組成的。
(1)屬性:事物的特徵,在對象中用屬性來表示(常用名詞)
(2)方法:事物的行爲,在對象中用方法來表示(常用動詞)
-
作用:JavaScript的對象使表達更清晰、更強大。
創建對象
-
在JavaScript中,創建對象的方法主要有以下三種:
(1)利用字面量創建對象
(2)利用new Object創建對象
(3)利用構造函數創建對象
利用字面量創建對象
-
對象字面量:就是用花括號{}裏面包含了表達這個具體事物(對象)的屬性和方法。
-
{}裏面採取鍵值對的形式表示。
(1)鍵:相當於屬性名
(2)值:相當於屬性值,可以是任意類型的值(數字類型、字符串類型、布爾類型、函數類型等)
var student = {
username : '蟹黃堡',
age : 22,
sex : '男',
skill : function(){
console.log('寫代碼!');
}
}
- 對象裏面的屬性調用:對象.屬性名,其中,這個小點.可以理解爲“的”。
- 對象裏面的屬性的另外一種調用方式:對象[‘屬性名’],注意方括號裏面的屬性必須加引號。
- 對象裏面的方法的調用:對象.方法名()。
console.log(stuent.username);
console.log(student['username']);
student.skill();
利用new Object創建對象
var student = new Object(); //創建一個空對象
student.username = '蟹黃堡';
student.age = 22;
student.sex = '男';
student.skill = function(){
console.log('寫代碼!');
}
console.log(student.username);
console.log(student['username']);
student.skill();
利用構造函數創建對象
- 使用構造函數的原因:因爲前兩種創建對象的方式每次只能創建一個對象,而使用構造函數可以把對象裏面的一些相同的屬性和方法抽象出來封裝到函數裏面,實現快速創建多個對象的目的。
//利用構造函數創建對象的語法格式如下:
function 構造函數名(){
this.屬性 = 值;
this.方法 = function(){
}
}
new 構造函數名();
//實例:
function Student(usernam,age,sex){
this.name = username;
this.age = age;
this.sex = sex;
this.skill = function(sk){
console.log(sk);
}
}
var xhb = new Student('蟹黃堡',22,'男');
console.log(xhb.name);
xhb.skill('寫代碼!');
-
注意點:
(1)構造函數名首字母要大寫
(2)構造函數不需要return就可以返回結果
(3)屬性和方法前面必須添加this
(4)主要通過new調用一次構造函數,就一定會創建一個對象
-
構造函數:抽象對象的各個部分並封裝到函數裏面,它泛指某一大類。
-
創建對象:通過new關鍵字創建對象的過程叫做對象的實例化,它特指某一個。
-
new關鍵字在執行時會做以下事情:
(1)構造函數遇到new關鍵字,會在內存中創建一個新的空對象
(2)讓this指向這個新的對象
(3)執行構造函數裏面的代碼給這個新對象添加屬性和方法
(4)返回這個對象(所以構造函數裏面不需要return)
遍歷對象
- for…in語句用於對數字或者對象的屬性進行循環操作,不過一般都是對對象進行循環遍歷,很少對數組使用。
//遍歷對象的語法格式如下:
for (變量 in 對象){ //這個變量通常寫k或者key
}
//--------------------------------
var student = {
username : '蟹黃堡',
age : 22,
sex : '男',
skill : function(){
console.log('寫代碼!');
}
}
//遍歷上面的對象的方法如下:
for (var k in student){
console.log(k); //k是屬性名
console.log(student[k]); //student[k]是屬性值
}
Tips(變量與屬性的區別以及函數與方法的區別)
- 變量:單獨聲明並賦值,單獨存在。
- 屬性:對象裏面的變量稱爲屬性,不需要聲明,用來描述該對象的特徵。
- 函數:單獨存在的,通過“函數名()“的方式就可以調用。
- 方法:對象裏面的函數稱爲方法,方法不需要聲明,使用”對象.方法名()“的方式就可以調用,方法用來描述該對象的行爲和功能。
微信公衆號也會定期更新,覺得文章寫得還可以的,可以加個關注!點個贊!謝謝!