JavaScript中的對象和對象構造函數?
在麵向對象的編程中,定義對象的方式在許多情況下是受限製的。要創建可以多次使用的對象“type”,而不必每次都重新定義對象以滿足每個特定實例的需要,標準方法是使用對象構造函數。
對象構造函數隻是常規的JavaScript函數,通常具有同樣強大的函數,即定義參數,調用其他函數等。對象構造函數為對象而非對象本身創建藍圖。
讓我們以real-world項目“dog”為例。狗的屬性可以是其顏色或名稱,方法可以是“bark”。這裏要注意的重要一點是,每隻狗的名字或樹皮類型都不同。為了創建滿足這種靈活性需求的對象類型,我們使用對象構造函數。因此,狗將成為對象構造函數,並使用“this”關鍵字在其內部聲明其屬性(顏色,名稱)和方法(樹皮噪聲)。然後使用new關鍵字實例化使用對象構造函數定義的對象。
這有助於輕鬆定義dog(一個對象構造函數)的多個實例,每個實例都有自己的名稱-這就是對象構造函數為自定義對象帶來的靈活性。
Object.isFrozen()方法
在Object構造函數方法中,有一個Object.isFrozen()方法,該方法用於確定對象是否凍結。
如果滿足以下所有條件,則凍結對象:
- 如果不能擴展。
- 如果其所有屬性都是不可配置的。
- 如果其所有數據屬性均為不可寫。
Object.isFrozen()將對象作為必須檢查的參數,並返回一個布爾值,表示對象是否凍結。
應用範圍:
- Object.isfrozen()用於檢查對象是否凍結。
用法:
Object.isFrozen(obj)
使用的參數:
- obj:這是必須檢查的對象。
返回值:
Object.isFrozen()返回一個布爾值,表示對象是否凍結。
下麵提供上述函數的示例。
例子:
Input : const object = { property: 'hi geeksforgeeks' }; console.log(Object.isFrozen(object)); Output : false Input : const object = { property: 'hi geeksforgeeks' }; Object.freeze(object); console.log(Object.isFrozen(object)); Output : true
下麵提供了上述函數的代碼。
代碼1:
<script>
<!-- creating an object constructor and assigning values to it -->
const object = {
property: 'hi geeksforgeeks'
};
<!-- checking whether the object is frozen or not -->
console.log(Object.isFrozen(object));
</script>
輸出:
false
代碼2:
<script>
<!-- creating an object constructor and assigning values to it -->
const object = {
property: 'hi geeksforgeeks'
};
<!-- Using freeze() method to freeze the object -->
Object.freeze(object);
<!-- checking whether the object is frozen or not -->
console.log(Object.isFrozen(object));
</script>
輸出:
true
異常:
- 如果傳遞的參數不是對象,則會導致TypeError。
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Object.isFrozen() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。