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.isSealed()方法
Object.isSealed()方法用於確定對象是否密封。
如果滿足以下所有條件,則將對象密封:
- 如果不能擴展。
- 如果其所有屬性都是不可配置的。
- 如果不可移動(但不一定不可寫入)。
Object.isSealed()將對象作為必須檢查的參數,並返回一個布爾值,表示對象是否密封。
應用範圍:
- Object.isSealed()用於檢查對象是否密封。
用法:
Object.isSealed(obj)
Parameters Used:
obj : It is the object which has to be checked.
返回值:
Object.isSealed() returns a boolean representing whether the object is sealed or not.
下麵提供上述函數的示例。
例子:
Input : const object = { property: 'hi geeksforgeeks' }; console.log(Object.isSealed(object)); Output : false
說明:在上麵的示例中,該對象尚未使用Object.seal()方法密封,因此,當使用Object.isSealed()方法進行檢查時,該對象返回false。
Input : const object = { property: 'hi geeksforgeeks' }; Object.seal(object); console.log(Object.isSealed(object)); Output : true
說明:在上麵的示例中,對象已使用Object.seal()方法密封,因此,當使用Object.isSealed()方法進行檢查時,該對象返回true。
下麵提供了上述函數的代碼。
代碼1:
<script>
// creating an object constructor
// and assigning values to it
const object = {
property: 'hi geeksforgeeks'
};
// checking whether the object
// is sealed or not
console.log(Object.isSealed(object));
</script>
輸出:
false
代碼2:
<script>
// creating an object constructor
// and assigning values to it
const object = {
property: 'hi geeksforgeeks'
};
// Using seal() method to seal the object
Object.seal(object);
// checking whether the
// object is frozen or not
console.log(Object.isSealed(object));
</script>
輸出:
true
異常:
- 如果傳遞的參數不是對象,則會導致TypeError。
- 如果沒有將對象作為方法的參數傳遞,則它將其視為密封對象並返回true。
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Object.isSealed() In JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。