JavaScript中的對象和對象構造函數?
在麵向對象編程的生活世界中,我們已經知道類和對象的重要性,但是與其他編程語言不同,JavaScript沒有其他語言所具有的傳統類。但是JavaScript具有對象和構造函數,它們在大多數情況下以相同的方式工作以執行相同的操作。
- 構造函數是與“new”關鍵字一起使用的常規JavaScript函數。構造函數在JavaScript中有兩種類型,即內置構造函數(數組和對象)和自定義構造函數(定義特定對象的屬性和方法)。
- 當我們需要一種創建可以多次使用而不必每次都重新定義對象的對象“type”的構造函數時,構造函數會很有用,這可以使用Object Constructor函數來實現。
按照慣例,大寫的構造函數名稱會將其與常規函數區分開。
例如,考慮以下代碼:
function Automobile(color) { this.color=color; } var vehicle1 = new Automobile ("red");
函數“Automobile()”是一個對象構造函數,其屬性和方法即“color”在其內部聲明為關鍵字“this”。然後使用關鍵字“new”將使用對象構造函數定義的對象轉換為即時對象。
調用新的Automobile()時,JavaScript執行以下兩項操作:
- 它創建一個新的新對象(實例)Automobile()並將其分配給變量。
- 它將對象的構造函數屬性“color”設置為Automobile。
Object.entries()方法
Object.entries()方法用於返回一個數組,該數組由作為參數傳遞的對象的可枚舉屬性[key,value]對組成。屬性的順序與手動循環對象的屬性值所給出的順序相同。
Object.entries()方法和Object.values()方法之間的區別
JavaScript中的Object.entries()方法返回一個數組,該數組包含作為參數傳遞的對象的可枚舉屬性[key,value]對,而JavaScript中的Object.values()方法返回一個數組,該數組的元素是在對象上找到的可枚舉的屬性值。請遵循以下示例,以更好地了解這兩個函數之間的區別。
Input: var object = { 0: '23', 1: 'geeksforgeeks', 2: 'true' }; console.log(Object.values(object)); console.log(Object.entries(object)); Output: Array ["23", "geeksforgeeks", "true"] Array [["0", "23"], ["1", "geeksforgeeks"],["2", "true"]]
說明:在上麵的示例中,已經創建了具有三個[key,value]對和object的對象。entries()方法返回該對象和object的[key,value]對。values()方法返回在該對象上找到的值。
應用範圍:
- Object.entries()用於列出與對象相關的屬性。
- Object.entries()用於列出對象的所有[鍵,值]對。
用法:
Object.entries(obj)
Parameters Used:
- obj : It is the object whose enumerable own property [key, value] pairs are to be returned.
返回值:
- Object.entries() returns an array consisting of enumerable property [key, value] pairs of the object passed.
下麵提供上述函數的示例。
例子:
Input : const obj = { 0: 'adam', 1: 'billy', 2: 'chris' }; console.log(Object.entries(obj)[1]); Output : Array ["1", "billy"]
說明:在此示例中,已使用三個property [key,value]對創建了一個對象“obj”,並且Object.entries()方法用於返回該對象的第一個property [key,value]對。
Input : const obj = { 10: 'adam', 200: 'billy', 35: 'chris' }; console.log(Object.entries(obj)); Output : Array [ ["10", "adam"], ["35", "chris"], ["200", "billy"]]
說明:在此示例中,已使用三個property [key,value]對創建了一個對象“obj”,並且Object.entries()方法用於返回該對象的所有property [key,value]對。
下麵提供了上述函數的代碼。
代碼1:
<script>
// creating an object constructor
// and assigning values to it
const obj = { 0: 'adam', 1: 'billy', 2: 'chris' };
// Displaying the enumerable property [key, value]
// pairs of the object using object.entries() method
console.log(Object.entries(obj)[1]);
</script>
輸出:
Array ["1", "billy"]
代碼2:
<script>
// creating an object constructor and
// assigning values to it
const obj = { 10: 'adam', 200: 'billy', 35: 'chris' };
// Displaying the enumerable property [key, value]
// pairs of the object using object.entries() method
console.log(Object.entries(obj));
</script>
輸出:
Array [["10", "adam"], ["35", "chris"],["200", "billy"]]
異常:
- 如果傳遞的參數不是對象,則會導致TypeError。
- 如果在參數中傳遞的鍵不在property [key,value]對的範圍內,則會導致RangeError。
參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Object.entries() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。