JavaScript中的符号、集合与映射深度解析
1. 符号相关特性
在JavaScript里,符号(Symbols)是一种全新的原始值类型,它能够创建不可枚举的属性,这些属性若不引用符号就无法被访问。虽然并非真正意义上的私有属性,但它们不易被意外修改或覆盖,所以适用于需要一定保护的功能。
1.1 Symbol.toPrimitive方法
可以通过重写 Symbol.toPrimitive 方法,依据不同的提示(hint)返回不同的值。以下是一个 Temperature 构造函数的示例:
Temperature.prototype[Symbol.toPrimitive] = function(hint) {
switch (hint) {
case "string":
return this.degrees + "\u00b0"; // degrees symbol
case "number":
return this.degrees;
case "default":
return this.degrees + " degrees";
}
};
var freezing = new Temperature(32);
console.log(freezing + "!"); // "32 degrees!"
console.log(freezing / 2);
超级会员免费看
订阅专栏 解锁全文
1060

被折叠的 条评论
为什么被折叠?



