Javascript 返回对象中的默认值
如果我有这样一个JS对象:Javascript 返回对象中的默认值,javascript,object,Javascript,Object,如果我有这样一个JS对象: myObject = { value: 'test value', editable: true } 在代码中请求myObject时,我希望myObject直接返回value,同时仍然允许访问myObject.editable。 我试过寻找getter,但这似乎与我试图实现的目标不符。我认为您所寻找的是Java中的toString或php中的\uu toString。不幸的是,javascript中不存在这个神奇的函数 一个简单的解决办法是: var myO
myObject = {
value: 'test value',
editable: true
}
在代码中请求myObject
时,我希望myObject直接返回value
,同时仍然允许访问myObject.editable
。
我试过寻找getter,但这似乎与我试图实现的目标不符。我认为您所寻找的是Java中的
toString
或php中的\uu toString
。不幸的是,javascript中不存在这个神奇的函数
一个简单的解决办法是:
var myObject = function() {
var _value: 'test value',
var editable: true,
// fluent get/set for value
function value(value) {
if(typeof value === 'undefined') {
return _value;
}
_value = value;
return this;
}
function isEditable()
return editable;
}
return {
value: value,
isEditable: isEditable
}
}
因此,您可以通过请求myObject的代码中的
myObject.value()
访问该值?您如何访问它?到目前为止,您尝试了什么?如果您希望myObject
在保存时返回字符串“test value”和myObject.editable
返回true
,那么我很抱歉,据我所知,这是不可能的。Rayon,只要调用myObject
我就得到了这个问题的否决票。有些人无法探索我们心爱的JS的边缘?如果你投了反对票,请告诉我原因。这是一个有趣的问题,我在当前版本的JavaScript/ES中搜索了答案,但我想到了一个想法。如果这是一个特写,那就很难理解了。开发人员将没有上下文,这可能会导致大量问题。想象一下,如果你将一个字符串对象的默认值更改为一个复杂对象,那么这种更改会产生很多副作用,很多副作用可能看不到。我认为你最好的选择是想出一个易于遵循的模式。例如,使用value
属性,这样您就知道这是默认值。这仍然需要我调用.value()
。我希望在请求myObject
时直接查看值是的,不幸的是,在javscript中无法实现您想要做的事情。我的答案只是一个变通办法。