引用類型
引用類型的值(對象)是引用類型的實(shí)例。引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起。
// new操作符 + 構(gòu)建函數(shù)創(chuàng)建對象
var person = new Object()
創(chuàng)建 Object 的實(shí)例,將該實(shí)例保存到 person 中,構(gòu)造函數(shù)為 Object,為新對象定義了默認(rèn)的屬性和方法。
Object 類型
我們看到的大多數(shù)引用類型都是 Object 類型的實(shí)例。雖然 Object 實(shí)例不具備多少功能,但是對于應(yīng)用程序中存儲(chǔ)和傳輸數(shù)據(jù)而言,是理想的選擇。
創(chuàng)建 Object 實(shí)例
- new 操作符 + Object 構(gòu)造函數(shù)
var person = new Object()
person.name = "ChangLau"
person.age = 26
- 對象字面量(對象定義的簡寫,簡化創(chuàng)建對象的過程)
var person = {
name : "ChangLau",
age : 26
}
or
var person = {} // 等價(jià) var person = new Object()
person.name = "ChangLau"
person.age = 26
使用對象字面量像函數(shù)傳參
function showObj(obj){
for(let i in obj){
console.log(typeof i, obj[i])
}
}
// 這里的屬性名自動(dòng)轉(zhuǎn)為字符串
var person = {
"name" : "ChangLau",
age : 26,
5 : true
}
showObj(person)
// string true
// string ChangLau
// string 26
訪問對象屬性
- 點(diǎn)表示法
var person = {
name : "ChangLau",
age : 26
}
console.log(person.name, person.age) // ChangLau 26
- 方括號語法
ar person = {
name : "ChangLau",
age : 26,
5 : true
}
console.log(person.name, person.age, person.5) // Uncaught SyntaxError: missing ) after argument list
// 使用于導(dǎo)致語法錯(cuò)誤的字符
console.log(person.name, person.age, person["5"]) // ChangLau 26 true
// 通過變量訪問屬性
var key = "age"
console.log(person[key]); // 26