目錄
- JavaScript 物件
- 物件
- 創建物件(object)的三種方式
- new關鍵字
- 遍歷物件屬性(for in)
JavaScript 物件
物件
在JavaScript中,物件是一組無序的相關屬性和方法的集合,所有的事物都是物件,例如字串、數值、陣列、函式等,
物件是由屬性和方法組成的,
- 屬性:事物的特征,在物件中用屬性來表示(常用名詞)
- 方法:事物的行為,在物件中用方法來表示(常用動詞)
保存一個值時,可以使用變數,保存多個值(一組值)時,可以使用陣列,保存一個人的完整資訊時可使用物件,
創建物件(object)的三種方式
1.利用字面量創建物件
物件字面量就是花括號{ }里面包含了表達這個具體事物(物件)的屬性和方法,
- 鍵:相當于屬性名
- 值:相當于屬性值,可以是任意型別的值(數字型別、字符型別、布爾型別、函式型別)
物件的呼叫
- 物件里面的屬性呼叫:物件名.屬性名 ,這個小點,可理解為“的”
- 物件里面屬性的另一種呼叫方式:物件名['屬性名'],注意方括號里面的屬性必須加引號
- 物件里面的方法呼叫:物件名.方法名(),注意方法名字后面一定加括號
//1.利用字面量創建物件{ }
//var obj = { };創建了一個空的物件
var obj = {
// { }里面的屬性或者方法采取鍵值對的形式 鍵(屬性名):值(屬性值)
name: '張三',
age: '18', // 多個屬性或者方法之間用逗號隔開
sex: '男',
sayHi: function(){ // 方法后面跟的是一個匿名函式
console.log('hi~');
}
}
//使用物件
// 呼叫物件的屬性
console.log(obj.name); // 第一種方法 物件名.屬性名
console.log(obj['age']); // 第二種方法 物件名['屬性名']
obj.sayHi(); // 第三種方法 呼叫物件的方法 sayHi 物件名.方法名() 需要添加小括號
2.利用new Object 創建物件
//利用new Object 創建物件
var obj = new Object(); // 創建了一個空物件
obj.name = '張三';
obj.age = 18; // 利用等號 = 賦值的方法,添加物件的屬性和方法
obj.sex = '男'; // 每個屬性和方法之間用 分號 結束
obj.sayHi = function(){
console.log('hi~');
}
console.log(obj.name);
console.log(obj['sex']);
obj.sayHi();
3.利用建構式創建物件
因為前面兩種創建物件的方式一次只能創建一個物件,一次創建一個物件,里面有很多的屬性和方法是大量相同的,因此可以利用函式的方法,重復這些相同代碼,我們將這個函式稱為 ——建構式 ,這個函式里面封裝的不是普通的代碼,而是物件,
建構式就是把物件里面一些相同的屬性和方法抽象出來封裝到函式里面,
//語法格式
//function 建構式名(){
// this.屬性 = 值;
// this.方法 = function() { }
//}
//new 建構式名();
// 建構式 明星 泛指的某一大類 類似于java語言中的 類(class)
function Star(uname, age, sex){ // 建構式首字母要大寫
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) { // 屬性和方法前面必須添加 this
consloe.log(sang);
}
}
// 呼叫建構式必須使用 new
// 物件 特指是一個具體的事物 劉德華 == {name: "劉德華", age:18, sex:"男", sing:f}
var ldh = new Star('劉德華',18,'男'); // 呼叫函式回傳的是一個物件
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('忘情水');
var zxy = new Star('張學友',28,'男');
console.log(zxy.name);
console.log(zxy.age);
zxy.sing('吻別');
物件的實體化利用建構式創建物件的程序
new關鍵字
new在執行時會做的四件事情:
1.new的出現,會讓建構式在記憶體中創建一個新的空物件
2.this就是指向這個新的物件
3.執行建構式里面的代碼,給空物件添加屬性和方法
4.回傳這個新物件(所以建構式里面不需要return)
遍歷物件屬性(for in)
//遍歷物件
var obj ={
name: '劉德華',
age: 18',
aex: '男',
}
for(var k in obj){ // for in 里面的變數通常寫 k 或者 key
conlose.log(k); // k 變數 輸出 得到的是 屬性名(name age sex)
conlose.log(obj[k]); // obj[k]得到的是屬性值(劉德華 18 男)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/503488.html
標籤:其他
