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.keys()方法
Object.keys()方法用於返回一個數組,該數組的元素是與直接在對象上發現的可枚舉屬性相對應的字符串。屬性的順序與對象在循環中應用於屬性時手動給定的順序相同。
Object.keys()將對象作為要返回其可枚舉的自身屬性的參數,並返回表示給定對象的所有可枚舉屬性的字符串數組。
應用範圍:
- Object.keys()用於返回簡單數組的可枚舉屬性。
- Object.keys()用於返回類似對象的數組的可枚舉屬性。
- Object.keys()用於以隨機鍵順序返回類似對象的數組的可枚舉屬性。
用法:
Object.keys(obj)
使用的參數:
- obj:是要返回其可枚舉屬性的對象。
返回值:
Object.keys()返回一個字符串數組,該字符串表示給定對象的所有可枚舉屬性。
下麵提供上述函數的示例。
例子:
Input:var check = ['x', 'y', 'z']; console.log(Object.keys(check)); Output:['0', '1', '2']
說明:在此示例中,數組“check”具有三個屬性值[x,y,z和object.keys()方法返回此數組的可枚舉屬性。屬性的順序與對象手動給定的順序相同。
Input:var object = { 0:'x', 1:'y', 2:'z' }; console.log(Object.keys(object)); Output:['0', '1', '2']
說明:在此示例中,類似於對象“check”的數組具有三個屬性值{0:'x',1:'y',2:'z'}和object.keys()方法返回此數組的可枚舉屬性。屬性的順序與對象手動給定的順序相同。
Input:var object = { 70:'x', 21:'y', 35:'z' }; console.log(Object.keys(object)); Output:['21', '35', '70']
說明:在此示例中,類似對象“check”的數組具有三個屬性值{70:'x',21:'y',35:'z'},並且對象為object.keys()方法在索引值的升序。
下麵提供了上述函數的代碼。
代碼1:
<script>
// Returning enumerable properties
// of a simple array
var check = ['x', 'y', 'z'];
console.log(Object.keys(check));
</script>
輸出:
['0', '1', '2']
代碼2:
<script>
// Returning enumerable properties
// of an array like object.
var object = { 0:'x', 1:'y', 2:'z' };
console.log(Object.keys(object));
</script>
輸出:
['0', '1', '2']
代碼3:
<script>
// Returning enumerable properties of an array
// like object with random key ordering.
var object = { 70:'x', 21:'y', 35:'z' };
console.log(Object.keys(object));
</script>
輸出:
['21', '35', '70']
異常:
- 如果傳遞的參數不是對象,則會導致TypeError。
- 如果沒有將對象作為參數傳遞給該方法,則它將說服並將其視為對象。
參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Object.keys() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。