大家好!
文章到今天也快要写一半了,谢谢各位的阅读。
我们进入今天的主题吧!
先建立一个物件并赋值:
let record = { name: null, test: true };
接下来的方法会有什麽差异呢?让我们来看看:
Object.freeze
Object.freeze(record);
Object.isFrozen(record); // true
/* 更改属性 ✗ */
record.name = 'Felix';
/* 新增属性 ✗ */
record.date = '2021-09-29';
/* 删除属性 ✗ */
delete record.test; // false
record; // { name: null, test: true }
Object.preventExtensions
Object.preventExtensions(record);
Object.isExtensible(record); // true
/* 更改属性 ✓ */
record.name = 'Felix';
/* 新增属性 ✗ */
record.date = '2021-09-29';
/* 删除属性 ✓ */
delete record.test; // true
record; // { name: 'Felix' }
Object.seal
Object.seal(record);
Object.isSealed(record); // true
/* 更改属性 ✓ */
record.name = 'Felix';
/* 新增属性 ✗ */
record.date = '2021-09-29';
/* 删除属性 ✗ */
delete record.test; // false
record; // { name: 'Felix', test: true }
先来介绍属性描述器的使用方法:
/* 下方属性值皆为预设值 */
Object.defineProperty(object, property, {
/* 属性值 */
value: undefined,
/* 能否重新描述 */
configurable: false,
/* 能否被列举 */
enumerable: false,
/* 能否更改属性值 */
writable: false,
/* Getter */
get: undefined,
/* Setter */
set: undefined
});
举例一下:
let record = { name: 'Felix' };
Object.defineProperty(record, 'date', {
value: '2021-09-29'
});
/* 更改属性 ✗ */
record.date = null;
/* 删除属性 ✗ */
delete record.date; // false
/* 列举属性 ✗ */
for (let key in record) {
console.log(key);
}
// Log: name
record; // { name: 'Felix', date: '2021-09-29' }
差不多也到尾声了,接下来我们要介绍的是物件的 this
关键字。
如果对文章有任何疑问,也欢迎在下方提问和建议!
我是 Felix,我们明天再见!
>>: DAY 16:Abstract Factory Pattern,膜拜那个工厂之神吧!
前几篇介绍了Select语句,接下来会以相同模式介绍Where子句。 Where子句格式: Wher...
作者说明我们最好都同时定义 Getters 与 Setters ,因为如果只定义了 Getter 但...
接下来讲讲後续说明会用到的专案建立方式 主控台建立 (Framework4.7.2) 1.开启Vis...
container 提供了强大的隔离功能,可以把 service 提供的服务放在 container...
前言 在前两篇的介绍中我们了解到了什麽是Angular中的form,并且对Reactive form...