Javascript——Object類型

前言

在平時工做中,咱們看到的引用類型大多數是Object類型的實例。javascript


什麼是Object類型?

以下所示:java

var o = new Object();
複製代碼

Object類型是一種數據類型,是全部它的實例的基礎。通俗的講,它就是一個對象,有不少基本的屬性供使用它的實例使用,而且能夠添加新的屬性。函數

object的實例有哪些共有的屬性呢?測試

  • 構造函數(constructor),它保存着用於建立當前對象的函數。
  • hasOwnProperty(propertyName),用於檢測給定的屬性在不在當前的實例中(不是原型中)。
  • isPrototypeOf,用於檢測對象是不是當前對象的原型。
  • propertyIsEnumerable(propertyName),用於檢測給定的屬性是否可以使用for-in語句來枚舉。
  • toLocaleString,返回對象的字符串表示。
  • toString,返回對象的字符串表示。
  • valueOf,返回對象的字符串、數值、布爾值。

如何建立Object類型?

  1. 使用new操做符與Object構造函數:
var person1 = new Object();
    person1.name = '對象1';
    person1.age = 18
複製代碼

  1. 對象字面量表示法
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'
    });
複製代碼

Object對象屬性訪問方式

var o = {
        name: '測試',
        age: 18
    };
    console.log(o.name);
    console.log(o['name']);
    
    var key = 'name';
    console.log(o[key]);
複製代碼

訪問對象的屬性通常是用點表示法比較多,同時也可使用方括號表示法來訪問,記住方括號裏面的屬性名要以字符串放入就行。一般不是必須使用變量來訪問的屬性,通常推薦用點表示法來訪問。對象


Object類型檢測方法

var o = new Object();
    console.log(o instanceof Object)
複製代碼

instanceof關鍵字,能夠檢測出該對象是不是Object類型。有人會問typeof不是也能夠嗎?是的,確實也能夠檢測出來,可是typeof nulltypeof [] 獲得的也是object,因此是不建議這麼使用的,由於它不夠精準啊大兄弟。ip

相關文章
相關標籤/搜索