// Symbol.for() 类似单例模式,首先会在全局搜索被登记的 Symbol 中 | |
// 是否有该字符串参数作为名称的 Symbol 值,如果有即返回该 Symbol 值, | |
// 若没有则新建并返回一个以该字符串参数为名称的 Symbol 值,并登记在全局环境中供搜索。 |
/ Symbol.keyFor(),返回一个已登记的 Symbol 类型值的 key , | ||
// 用来检测Symbol.for该字符串参数作为名称的 Symbol 值是否已被登记。// Object.keys() 静态方法返回一个由给定对象自身的可枚举的字符串键属性名组成的数组。 | ||
Object.values() 静态方法返回一个给定对象的自有可枚举字符串键属性值组成的数组。 | ||
// console.log(Object.values(object1)); | ||
// Object.getOwnPropertyNames() 静态方法返回一个数组,其包含给定对象中所有自有属性 | ||
// (包括不可枚举属性,但不包括使用 symbol 值作为名称的属性)。 | ||
// console.log(Object.getOwnPropertyNames(object1)); | ||
// Object.getOwnPropertySymbols() 静态方法返回一个包含给定对象所有自有 Symbol 属性的数组。 | ||
// console.log(Object.getOwnPropertySymbols(object1)); |
/ Object.defineProperty() 静态方法会直接在一个对象上定义一个新属性, | |
// 或修改其现有属性,并返回此对象。 | |
// Object.defineProperty(操作的对象, 键名, {value:键值}) | |
// writable 设置为false不允许修改defineProperty对象添加的值,true允许修改 | |
// enumerable设置为true允许被循环拿取值,false不予许 | |
// configurable false不可被删除,true可以删除 |