
symbol 是一个内置对象,其构造函数返回一个 symbol 基元 — 也称为 symbol 值 或只是一个 symbol — 保证是唯一的。符号通常用于向对象添加唯一的属性键,这些属性键不会与任何其他代码可能添加到该对象的键发生冲突,并且对于其他代码通常用于访问该对象的任何机制都是隐藏的。这实现了一种弱封装形式,或者一种弱形式的信息隐藏。
javascript
copy code
// create unique symbols
const id = symbol('id');
const name = symbol('name');
// create an object with symbol-based properties
const user = {
[id]: 101,
[name]: 'alice',
age: 25
};
// access the symbol properties
console.log(user[id]); // 101
console.log(user[name]); // "alice"
// add another property using a symbol
const email = symbol('email');
user[email] = 'alice@example.com';
console.log(user[email]); // "alice@example.com"
// symbols are not enumerable in for...in loops or object.keys
for (const key in user) {
console.log(key); // only "age" is logged
}
console.log(object.keys(user)); // ["age"]
// you can still access all properties if you know the symbol keys
console.log(object.getownpropertysymbols(user)); // [symbol(id), symbol(name), symbol(email)]
javascript
copy code
const collection = {
items: ['apple', 'banana', 'cherry'],
[symbol.iterator]() {
let index = 0;
const items = this.items;
return {
next() {
if (index < items.length) {
return { value: items[index++], done: false };
} else {
return { done: true };
}
}
};
}
};
// iterate over the object
for (const item of collection) {
console.log(item);
}
// output:
// apple
// banana
// cherry
此示例展示了 symbol.iterator 如何允许使用 for...of 迭代自定义对象。
示例:在流行的 npm 库中使用符号
symbol 使用的一个著名示例是 express.js 框架,这是一个广泛使用的 node.js web 应用程序框架。在 express.js 中,symbol 用于定义唯一的属性键,防止与用户定义的属性发生潜在冲突。
立即学习“Java免费学习笔记(深入)”;
扁平化婚礼策划的网页模板,扁平化概念的核心意义是:去除冗余、厚重和繁杂的装饰效果。而具体表现在去掉了多余的透视、纹理、渐变以及能做出3D效果的元素,这样可以让“信息”本身重新作为核心被凸显出来。同时在设计元素上,则强调了抽象、极简和符号化。[1] 例如:Windows、Mac OS、iOS、Android等操作系统的设计已经往“扁平化设计”发展。其设计语言主要有Material Design、
46
来自 express.js 的代码片段:
javascript
Copy code
// In Express.js, a symbol is used to define a unique property key
const app = express();
app[Symbol('router')] = router;
在此代码片段中,symbol('router') 创建一个唯一的符号,用作应用程序对象的属性键。这种方法确保路由器属性是独特的,并且不会干扰可能添加到应用程序对象的其他属性。
在库中使用符号的好处:
以上就是Javascript 中的符号及其示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号