在平時工做中,咱們看到的引用類型大多數是Object類型的實例。javascript
以下所示:java
var o = new Object();
複製代碼
Object類型是一種數據類型,是全部它的實例的基礎。通俗的講,它就是一個對象,有不少基本的屬性供使用它的實例使用,而且能夠添加新的屬性。函數
object的實例有哪些共有的屬性呢?測試
var person1 = new Object();
person1.name = '對象1';
person1.age = 18
複製代碼
var person2 = {
name: '對象2',
age: 18
};
複製代碼
第一種方法使用new操做符和Object構造函數建立了Object引用類型的一個新實例,而後把該實例保存在了變量person1中。
第二種方法則是用一種簡寫的方式,一般使用對象字面量表示法比較頻繁,由於它會給人封裝數據的感受,同時它也是向函數傳遞大量可選參數的首選方式。ui
實際上:spa
var person2 = {}; // 與new Object()相同
複製代碼
函數傳參:code
function test(args) {
var result = '';
if (typeof args.name === 'string') {
result += 'Name:' + args.name + '\n';
}
if (typeof args.age === 'number') {
result += 'Age:' + args.age + '\n';
}
console.log(result);
}
test({
name: '測試1',
age: 18
});
test({
name: '測試2'
});
複製代碼
var o = {
name: '測試',
age: 18
};
console.log(o.name);
console.log(o['name']);
var key = 'name';
console.log(o[key]);
複製代碼
訪問對象的屬性通常是用點表示法比較多,同時也可使用方括號表示法來訪問,記住方括號裏面的屬性名要以字符串放入就行。一般不是必須使用變量來訪問的屬性,通常推薦用點表示法來訪問。對象
var o = new Object();
console.log(o instanceof Object)
複製代碼
instanceof關鍵字,能夠檢測出該對象是不是Object類型。有人會問typeof不是也能夠嗎?是的,確實也能夠檢測出來,可是typeof null
和typeof []
獲得的也是object
,因此是不建議這麼使用的,由於它不夠精準啊大兄弟。ip