javascript 對象

創(chuàng)建對象的三種方法:

字面量 obj = {}、obj = new Object()、構(gòu)造函數(shù)

字面量方法創(chuàng)建對象:


  • 屬性和方法采用鍵值對的方式;
  • 多個屬性與方法之間用逗號隔開;
  • 方法后跟匿名函數(shù);
let obj ={
  uname:'Jack',
  age:28,
  sayHi:function(){
    console.log('Hi!');
  }
}

使用對象

  • 調(diào)用對象的屬性: 對象.屬性 或者 對象['屬性'];
  • 調(diào)用對象的方法: 對象.方法();
// 接上面代碼
console.log(obj.uname);   // Jack
console.log(obj['age']);   // 28
obj.sayHi();   // Hi!

new Object() 創(chuàng)建對象


  • 用new Object()創(chuàng)建空對象;
  • 使用“=”賦值來添加屬性和方法 ;
  • 屬性和方法之間是單獨(dú)的語句,用分號結(jié)束
let obj = new Object();
obj.uname = 'Tom'; 
obj.age = 36; 
obj.sayHi = function(){
  console.log('Hi~');
}

console.log(obj.uname); // Tom
console.log(obj['age']); // 36
obj.sayHi(); // Hi~

使用構(gòu)造函數(shù)創(chuàng)建對象


  • 上面兩種方法一次都只能創(chuàng)建一個對象,使用構(gòu)造函數(shù)可以創(chuàng)建多個對象;
  • 把對象中的公共屬性和方法抽取出來,封裝在函數(shù)中,這個函數(shù)就是構(gòu)造函數(shù);
  • 用構(gòu)造函數(shù)創(chuàng)建的對象,也被稱為對象的實例化;

代碼實例:

function Star(uname, age, gender) {
    this.uname = uname;
    this.age = age;
    this.gender = gender;
    this.sayHi = function(msg){
        console.log('Hi~'+msg)
    }
}
let p1 = new Star('Jack', 28, 'male');
let p2 = new Star('Lily', 23, 'female');
console.log(p1.uname);  // Jack
console.log(p1['age']);  // 28
console.log(p2.gender);  // female
p1.sayHi('how are you!'); // HI~ how are you!

構(gòu)造函數(shù)的特點(diǎn)

  • 構(gòu)造函數(shù)的名字,首字母要大寫;
  • 構(gòu)造函數(shù)不需要 return , 就可以返回結(jié)果;
  • 調(diào)用構(gòu)造函數(shù),使用new;
  • 構(gòu)造函數(shù)的屬性和方法要使用this, 指向當(dāng)前對象;

new 關(guān)鍵字的執(zhí)行過程

  • 變量遇到new, 即在內(nèi)在中創(chuàng)建了空對象;
  • 構(gòu)造函數(shù)中的 this,就指向了這個空對象;
  • 執(zhí)行構(gòu)造函數(shù)中的代碼,為對象添加屬性和方法;
  • 返回這個對象,有了new,就不需要return了。

for ... in 遍歷對象

  • 遍歷的變量常用 k 或 key;
  • key 是變量,得到的是屬性名;
  • obj[key] 得到屬性值;
let obj = {
    uname: 'Jack',
    age: 28,
    gender: 'male',
    sayHi: function() {
        console.log('Hi~');
    }
}
for (let key in obj) {
    console.log(key + ':' + obj[key]);
}

小結(jié)

  • 對象讓代碼結(jié)構(gòu)更清晰;
  • 對象是復(fù)雜數(shù)據(jù)類型object;
  • 本質(zhì):對象是一組無序的屬性和方法的集合;
  • 構(gòu)造函數(shù)泛指一個大類;比如:明星;
  • 對象是構(gòu)造函數(shù)的實例,特指某個具體的事物;比如:劉德華;
  • for ... in 用于遍歷對象的屬性;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容