繁体   English   中英

具有默认值的 Javascript 对象

[英]Javascript Object with default value

我想要实现的目标似乎很简单,但我不确定是否可行。

如果没有指定属性,我想要一个返回特定值的对象。 例如:

console.log(obj) // Returns "123"
console.log(obj.x) // Returns "ABC"

覆盖自定义对象原型中的toString()方法。

function MyObj() {
}
MyObj.prototype.toString = function () {
    return '123';
};
var obj = new MyObj();
obj.x = 'ABC';
console.log(obj + '');
console.log(obj.x + '');

以下是使用Symbol 的 toPrimitive 的方法

const primaryColor = {
  default: 'green',
  darker: 'silver',
  lighter: 'white',
}

Object.defineProperty(primaryColor, Symbol.toPrimitive, {
  value: () => primaryColor.default
});

所以,我们得到了类似的东西:

console.log('primary color: ' + primaryColor.darker) // returns "primary color: silver"
console.log('primary color: ' + primaryColor) // returns "primary color: green"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM