JavaScript对象能否返回值和控制台日志?
我有一个对象看起来像这样:JavaScript对象能否返回值和控制台日志?,javascript,object,console,lookup,Javascript,Object,Console,Lookup,我有一个对象看起来像这样: const CONVERT = { a: 1, b: 2, c: 100, }; const CONVERT = { a: 1, b: 2, c: ( ()=> { console.error( 'value clamped at the limit of 100' ); return 100; )(), }; let value; if( x === 'a' ) { value = 1; } else if( x === 'b'
const CONVERT = {
a: 1,
b: 2,
c: 100,
};
const CONVERT = {
a: 1,
b: 2,
c: ( ()=> { console.error( 'value clamped at the limit of 100' ); return 100; )(),
};
let value;
if( x === 'a' ) {
value = 1;
} else if( x === 'b' ) {
value = 2;
} else if( x === 'c' ) {
value = 100;
console.error( 'value clamped at the limit of ', value );
}
我是这样使用它的:
let x = 'a';
// some logic that may change x
const value = CONVERT[x];
假设我知道当x='c'时,这是一个错误条件。我想控制台。错误('value clipped in limit of 100')当x='c'时
在CONVERT对象指定中是否有一种优雅的方法来实现这一点?我希望我能做这样的事情:
const CONVERT = {
a: 1,
b: 2,
c: 100,
};
const CONVERT = {
a: 1,
b: 2,
c: ( ()=> { console.error( 'value clamped at the limit of 100' ); return 100; )(),
};
let value;
if( x === 'a' ) {
value = 1;
} else if( x === 'b' ) {
value = 2;
} else if( x === 'c' ) {
value = 100;
console.error( 'value clamped at the limit of ', value );
}
…但这不会在调用CONVERT['c']时显示console.error消息,而是在实例化CONVERT对象时立即显示该消息
我能想到的唯一选择是:
let x = 'a';
// some logic that may change x
const value = CONVERT[x];
if( value === 100 ) {
console.error( 'value clamped at the limit of 100' );
}
但这意味着,无论我在哪里使用CONVERT,我现在都需要执行这个额外的if检查,这样我就可以对所需的消息进行console.error。如果我知道x不等于‘c’,我想避免在完全检查的情况下这样做
我的另一个选择是去掉CONVERT对象,而是硬编码if-else或switch,如下所示:
const CONVERT = {
a: 1,
b: 2,
c: 100,
};
const CONVERT = {
a: 1,
b: 2,
c: ( ()=> { console.error( 'value clamped at the limit of 100' ); return 100; )(),
};
let value;
if( x === 'a' ) {
value = 1;
} else if( x === 'b' ) {
value = 2;
} else if( x === 'c' ) {
value = 100;
console.error( 'value clamped at the limit of ', value );
}
这也是,我希望我可以使用lookup对象来绕过它。您似乎需要一个,这是一个可以在属性访问上执行的函数。从getter返回的值是
CONVERT['c']
计算为的值:
const CONVERT={
答:1,,
b:2,
获取c(){
控制台错误(‘值限制在100’);
返回100;
}
};
设x='a';
x='c';//一些可能改变x的逻辑
常量值=转换[x];
console.log(值)代码>看起来您可能正在使用,这是一个可以在属性访问上执行的函数。从getter返回的值是CONVERT['c']
计算为的值:
const CONVERT={
答:1,,
b:2,
获取c(){
控制台错误(‘值限制在100’);
返回100;
}
};
设x='a';
x='c';//一些可能改变x的逻辑
常量值=转换[x];
console.log(值)代码>