具有默认值的Javascript对象

具有默认值的Javascript对象,javascript,Javascript,我想要实现的目标似乎很简单,但我不确定这是否可能 如果没有指定属性,我希望有一个返回特定值的对象。例如: console.log(obj) // Returns "123" console.log(obj.x) // Returns "ABC" 在定制对象的原型中重写toString()方法 function MyObj() { } MyObj.prototype.toString = function () { return '123'; }; var obj = new MyObj

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

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

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 + '');

以下是如何使用以下工具完成此操作:

因此,我们得到了如下结果:

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

不,那是不可能的。你需要这个做什么?你不能用
console.log(obj)
,但你可以用
console.log(obj+“”)
看看though@Bergi误用该代码将以眼泪告终。我支持你的第一个答案。正如@zb所指出的,这只能通过在日志调用中将对象强制为带有
+'
的字符串来实现。
console.log('primary color: ' + primaryColor.darker) // returns "primary color: silver"
console.log('primary color: ' + primaryColor) // returns "primary color: green"