Wil*_*iam 5 javascript symbols ecmascript-6
我正在学习 JavaScript 符号,根据我所读到的内容,它们用于保护对象属性键覆盖。在下面的代码中,我创建了两个具有相同变量名的符号并将它们用作对象键。我想知道如何访问分配给程序底部的任一“符号”键的数据。如果我完全误解了符号的用途,请指出。
var id = Symbol("my id"); // Create a Symbol
var user = {
name:"Bob",
age:30,
[id]:"my id 12345" // Use it as a property key and add some data
}
var id = Symbol("my different id"); // Create a new Symbol
user[id] = "my different id 9876" // Assign it with some new data
console.log(user);
/* The object contains both symbols. No overwrites!
{
name: "Bob",
age: 30,
Symbol(my id): "my id 12345",
Symbol(my different id): "my different id 9876"
}
*/
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,你需要
var id = Symbol.for("my id");
var user = {
name:"Bob",
age:30,
[id]:"my id 12345"
}
var id = Symbol.for("my different id");
user[id] = "my different id 9876"
console.log(user[Symbol.for("my id")]);
console.log(user[Symbol.for("my different id")]);Run Code Online (Sandbox Code Playgroud)
该id变量被重新分配,因此您可以仅使用它来获取"my different id 9876"符号不会被重新分配。
| 归档时间: |
|
| 查看次数: |
2455 次 |
| 最近记录: |