JavaScript中的对象和对象构造函数? 在面向对象编程中,定义对象的方法在很多情况下都是有限的。要创建可以多次使用的对象“类型”,而无需每次重新定义对象以满足每个特定实例的需要,标准方法是使用对象构造函数函数。 对象构造函数只是一个常规的JavaScript函数,一般来说,它同样健壮,即定义参数、调用其他函数等。对象构造函数为对象创建蓝图,而不是对象本身。 让我们以现实世界中的“狗”为例。狗的特性可能是它的颜色或名字,方法可能是“吠叫”。这里需要注意的一点是,每只狗都会有不同的名字,甚至吠叫类型。为了创建满足这种灵活性需求的对象类型,我们使用对象构造函数。因此,狗将是一个对象构造函数,它的属性(颜色、名称)和方法(吠声)在其中使用“this”关键字声明。然后使用new关键字实例化使用对象构造函数定义的对象。 这有助于轻松定义dog的多个实例(对象构造函数),每个实例都有自己的名称——这就是对象构造函数为自定义对象带来的灵活性。 对象isfreeze()方法 在对象构造函数方法中,有一个方法对象。IsFrozed(),用于确定对象是否已冻结。 如果以下所有条件均成立,则对象将被冻结:
- 如果它不可扩展。
- 如果其所有属性都不可配置。
- 如果其所有数据属性都不可写。
对象IsFrozed()将对象作为必须检查的参数,并返回一个表示对象是否冻结的布尔值。 应用:
- 对象IsFrozed()用于检查对象是否已冻结。
语法:
Object.isFrozen(obj)
使用的参数:
- obj:这是必须检查的对象。
返回值: 对象isfronged()返回一个布尔值,表示对象是否已冻结。 下面提供了上述功能的示例。 例如:
Input : const object = { property: 'hi geeksforgeeks' }; console.log(Object.isFrozen(object));Output : falseInput : const object = { property: 'hi geeksforgeeks' }; Object.freeze(object); console.log(Object.isFrozen(object));Output : true
下面提供了上述功能的代码。 代码1:
html
< 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:
html
< 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。
支持的浏览器:
- 谷歌Chrome 6及以上版本
- 边缘12及以上
- Firefox4及以上版本
- Internet Explorer 9
- 歌剧12及以上
- Safari 5.1及以上版本