1.物件實字:插入屬性與值,可插入純值、物件、函式
var family = {
  //property: value
    name: '小明家',
    deposit: 1000,
    members: {
        mom: '老媽',
        ming: '小明'
    },
    callFamily: function(){
        console.log('聯絡小明家');
    }
2.物件建構式
var newFamily = new Object(family);
※ 使用 [] 中括號取值:可插入字串、變數來取值
※ 屬性名稱永遠是字串
console.log(family.name);   // 小明家
console.log(family.members.mom);   // 老媽
var a = 'name';
console.log(family['name']);   // 小明家
console.log(family[a]);   // 小明家
family.callFamily();   // 執行函式: 聯絡小明家
family['family']();   // 執行函式: 聯絡小明家
family.dog = '小白';
family['kitten'] = '小貓';
family['$'] = 'money';
delete family.deposit;
delete family['$'];
變數及物件屬性的差異;
變數無法被刪除,屬性才可以!
var a = 1;
b = 2;   // b 等同於 window.b
console.log(window);
delete a;
delete b;
console.log(a);   // 1 變數無法被刪除
console.log(b);   // b is not defined
var family = {};
family.name = '小明家'
// 一般物件新增屬性
var newString = '小明家';
newString.name = '小明';
console.log(newString); // 小明家
// 純值無法新增屬性
此種方式新增的字串,並非純值(是物件)
var newString2 = new String('小明家');
newString2.name = '小明';
console.log(newString2);
// String {"小明家", name: "小明"}
因為陣列也屬於物件型別,所以可行
var newArray = [1,2,3];
newArray.name = '小明';
console.log(newArray);
// [1,2,3,name: "小明"]
function callName(){
  console.log('呼叫小明');
}
callName.ming = '小明';
console.dir(callName);
// 使用 console.dir 可以看到物件所有屬性內容
// callName() 打開可看到  ming: "小明"
var family = {
  name: '小明家',
};
console.log(family.ming); 
// undefined
// 物件下並沒有這個屬性
方法 1 : 新增一個空物件,就可以正確插入屬性與值
var family = {
  name: '小明家',
  ming: {}
}
方法 2 : 定義一個物件結構
family.ming = {
  name: '小明'
}
※ 可以透過 console.log(window.屬性名) 去查詢有無該屬性