1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > JS-面向对象-对象的特性-禁止对象扩展 / 对象的特性-封印对象 / 对象的特性-冻结对象

JS-面向对象-对象的特性-禁止对象扩展 / 对象的特性-封印对象 / 对象的特性-冻结对象

时间:2020-06-04 04:37:34

相关推荐

JS-面向对象-对象的特性-禁止对象扩展  /  对象的特性-封印对象  /  对象的特性-冻结对象

对象的特性-禁止对象扩展

<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title></head><body><script>var obj1 = {firstName: '赵四',lastName: '尼古拉斯'};// 检测对象是否可扩展,true 表示可扩展,false 表示不可扩展console.log(Object.isExtensible(obj1)); // true// 禁止对象扩展Object.preventExtensions(obj1)// 检测对象是否可扩展,true 表示可扩展,false 表示不可扩展console.log(Object.isExtensible(obj1)); // false// 为 obj1 添加新属性,此时添加不上obj1.age = 20;console.log(obj1)</script></body></html>

对象的特性-封印对象

<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title></head><body><script>var obj1 = {firstName: '赵四',lastName: '尼古拉斯'};// 检测对象是否可扩展,true 表示可扩展,false 表示不可扩展// console.log(Object.isExtensible(obj1)); // true// 检测对象是否是被封印的,true 表示已被封印,false 表示未被封印console.log(Object.isSealed(obj1)); // false// 封印对象Object.seal(obj1);// 检测对象是否是被封印的,true 表示已被封印,false 表示未被封印console.log(Object.isSealed(obj1)); // true// 检测对象是否可扩展,true 表示可扩展,false 表示不可扩展console.log(Object.isExtensible(obj1)); // false// 不可扩展obj1.age = 20;// 由于被封印对象的所有属性的 configurable 特性都被设置成 false,因此不能删除任何属性。delete obj1.firstName;// 可以修改已有属性,writable: trueobj1.firstName = '刘能';// 可以遍历已有属性,enumerable: truefor (var key in obj1) {console.log(key)}// 被封印对象的特点:// 1. 不可扩展新属性// 2. 不能删除已有属性// 3. 可以修改已有属性// 4. 可以遍历已有属性console.log(obj1)</script></body></html>

对象的特性-冻结对象

<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title></head><body><script>var obj1 = {firstName: '赵四',lastName: '尼古拉斯'};// 检测对象是否被冻结,true 表示已被冻结,false 表示未被冻结console.log(Object.isFrozen(obj1)); // false// 冻结对象Object.freeze(obj1)// 冻结之后,再次检测对象是否被冻结console.log(Object.isFrozen(obj1)); // true// 冻结之后,再次检测对象是否被封印console.log(Object.isSealed(obj1)); // true// 冻结之后,再次检测对象是否能扩展console.log(Object.isExtensible(obj1)); // false// 不可扩展obj1.age = 20;// 由于冻结对象的所有属性的 configurable 特性都被设置成 false,因此不能删除任何属性。delete obj1.firstName;// 不可修改已有属性,writable: falseobj1.firstName = '刘能';// 可以遍历已有属性,enumerable: truefor (var key in obj1) {console.log(key)}// 被冻结对象的特点:// 1. 不可扩展新属性// 2. 不能删除已有属性// 3. 不可修改已有属性// 4. 可以遍历已有属性console.log(obj1)</script></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。