function addSymbol(obj) { const sym = Symbol('test'); obj[sym] = 'my hidden value'; return obj;}const obj = addSymbol({});// No way to access obj[sym] here, unless you explicitly look// into `Object.getOwnPropertySymbols()`.Symbols 也被排除在外JSON.stringify()输出,这使得...
/** * @param {any} description 描述信息。可以是任何可以被转型成字符串的值,如:字符串、数字、对象、数组等 */ function Symbol(description:any):symbol;由于 Symbol 是一种基础数据类型,所以当我们使用 typeof 去检查它的类型的时候,它会返回一个属于自己的类型 symbol,而不是什么什么 string、object...
constmetadata=Symbol('elementMetadata');functionattachMetadata(element,data){element[metadata]=data;ret...
constmyIterable={};myIterable[Symbol.iterator]=function*(){yield1;yield2;yield3;};for(constvalueofmyIterable){console.log(value);// 输出:1 2 3} 3. 隐藏属性:使用 Symbol 作为属性名,可以隐藏属性,使其不容易被意外访问到。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 constsecretKey=Symb...
}functionlib2(obj) { obj[Symbol('id1')] =456; }lib1(person);lib2(person); Symbol.for() Symbol.for(key) 方法会根据给定的键 key,来从运行时的 symbol 注册表中找到对应的 symbol,如果找到了,则返回它,否则,新建一个与该键关联的 symbol,并放入全局 symbol 注册表中。
function lib2(obj) { obj[Symbol('id1')] = 456; } lib1(person); lib2(person); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Symbol.for() Symbol.for(key) 方法会根据给定的键 key,来从运行时的 symbol 注册表中找到对应的 symbol,如果找到了,则返回它,否则,新建一个与该键关联的 symbol...
toString: function() { return 'abc'; } } console.log(Symbol(obj)); // abc let s = Symbol('mySymbol'); // console.log(s + '123'); // Uncaught TypeError: Cannot convert a Symbol value to a string console.log(String(s), s.toString()); // 'Symbol(mySymbol)' 'Symbol(mySymbol...
const TYPE_IMAGE = "IMAGE"; function handleFileResource(resource) { switch (resource.type) { case TYPE_AUDIO: playAudio(resource); break; case TYPE_VIDEO: playVideo(resource); break; case TYPE_IMAGE: previewImage(resource); break; default: throw new Error("Unknown type of resource"); } }...
一. Function 1. 默认参数 (1). ES5的写法 {functionfoo(x, y) { y= y || 'world'console.log(x, y) } foo('hello', 'imooc') foo('hello', 0)//输出hello worldfoo('hello')//输出hello world} (2). ES6的写法 {functionfoo(x, y = 'world') { ...
let s = Symbol();let obj = { [s]: function (arg) { ... }};obj[s](123);上面代码中,如果s不放在方括号中,该属性的键名就是字符串s,而不是s所代表的那个 Symbol 值。采用增强的对象写法,上面代码的obj对象可以写得更简洁一些。let obj = { [s](arg) { ... }};Symbol 类型还可以...