我们将大部分数据格式化为
var X = {value:'some val',error:'maybe an error',valid:true}
要在任何地方退出调用.value,但仍然可以访问每个数据点级别的元数据。
是否有一个
A)将元数据放在基元上的方法?例如将.error附加到int? bool或字符串是否可能?
B)一种创建可以作为基元处理的类的方法,在我这样做时提供特定的数据成员? IE X.value = 5,X + 3返回8.
C)我们的数据更好的设计?我们是不是以某种方式把这个弄错了?
答案 0 :(得分:1)
您可以将方法toString()
设置为您的对象并返回value
。
var X = {
value: 1,
error:'maybe an error',
valid:true,
toString: function() {
return this.value;
}
}
X.value = 5;
console.log(X+3);
答案 1 :(得分:0)
您可以将数据表示为也具有属性的函数对象:
var X = () => 1;
X.value = 1;
X.error = 'maybe an error';
X.valid = true,
console.log(X()); // 1
console.log(X.valid); // true

为了更好的设计,您可以将数据对象的创建封装在另一个函数中。