JavaScript中的对象和对象构造函数? 在面向对象编程的现实世界中,我们已经知道类和对象的重要性,但与其他编程语言不同,JavaScript没有其他语言中看到的传统类。但是JavaScript有对象和构造函数,它们的工作方式基本相同,可以执行相同类型的操作。
- 构造函数是与“new”关键字一起使用的通用JavaScript函数。在JavaScript中,构造函数有两种类型,即内置构造函数(数组和对象)和自定义构造函数(定义特定对象的属性和方法)。
- 当我们需要一种方法来创建一个对象“类型”时,构造函数是有用的,该对象“类型”可以多次使用,而不必每次都重新定义对象,这可以通过使用对象构造函数来实现。将构造函数的名称大写以区别于常规函数是一种惯例。
例如,考虑下面的代码:
function Automobile(color) { this .color=color; } var vehicle1 = new Automobile ( "red" ); |
函数“Automobile()”是一个对象构造函数,其属性和方法(即“color”)通过在其前面加上关键字“this”来声明。然后,使用对象构造函数定义的对象使用关键字“new”生成实例。
当调用new Automobile()时,JavaScript会做两件事:
- 它创建一个新的对象(实例)Automobile(),并将其分配给一个变量。
- 它将对象的构造函数属性即“颜色”设置为Automobile。
对象isSealed()方法 对象isSealed()方法用于确定对象是否已密封。 如果以下所有条件均成立,则密封对象:
- 如果它不可扩展。
- 如果其所有属性都不可配置。
- 如果它不可移动(但不一定不可写)。
对象isSealed()将对象作为必须检查的参数,并返回一个表示对象是否密封的布尔值。
应用:
- 对象isSealed()用于检查对象是否已密封。
语法:
Object.isSealed(obj)
使用的参数: obj:这是必须检查的对象。 返回值: 对象isSealed()返回一个布尔值,表示对象是否已密封。
下面提供了上述功能的示例。
例如:
Input : const object = { property: 'hi geeksforgeeks' }; console.log(Object.isSealed(object)); Output : false
说明:在上面的示例中,对象没有使用对象进行密封。因此,当使用Object检查seal()方法时,它返回false。isSealed()方法。
Input : const object = { property: 'hi geeksforgeeks' }; Object.seal(object); console.log(Object.isSealed(object)); Output : true
说明:在上面的示例中,对象已使用对象密封。因此,当使用Object检查seal()方法时,它将返回true。isSealed()方法。
下面提供了上述功能的代码。
代码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。
支持的浏览器:
- 铬6及以上
- 边缘12及以上
- Firefox4及以上版本
- Internet Explorer 9及以上版本
- 歌剧12及以上
- Safari 5.1及以上版本