我想知道是否有办法为javascript对象设置默认返回值。我将尝试用一个例子来解释:
我有:
Obj1 = {'prop1' = 'something1',
'prop2' = 'something2',
'active' = typeof XMLobj.propX === 'undefined' ? false : true} //XMLobj comes from somewhere else
因为我希望这个对象成为另一个对象的一部分,所以我希望有类似
的东西If (otherObj.Obj1) { //do something using prop1 and/or prop2 }.
其中otherObj.Obj1
返回活动字段的值,而不必检查otherObj.Obj1.active
背后的原因可能是错误的代码(我的错)。我使用If (otherObj.Obj1)
使用某些东西写了几个函数。我当时并不关心它的属性,但现在我想进一步扩展,我想避免(如果可能的话,使用像这样的东西:
otherObj.Obj1 = typeof XMLobj.propX === 'undefined' ? false : true} //XMLobj comes from somewhere else
otherObj.Obj1Prop1 = 'something1'
otherObj.Obj1Prop2 = 'something2'
任何建议?感谢
答案 0 :(得分:0)
当简单地引用对象时,JavaScript不会从对象返回字段。它必须返回对象本身。在某些具有静态类型信息的语言中,可能会发生这种情况(我认为VB就是这样做的)。 JavaScript没有静态类型,因此需要返回对象。它无法告知何时返回对象以及何时返回对象中的“默认”字段。
答案 1 :(得分:0)
这是不正确的对象文字符号:
Obj1 = {'prop1' = 'something1',
'prop2' = 'something2',
'active' = true or false}
应该是:
var someCondition = // Make this evaluate to true or false based on whether it's active.
var otherObj = {Obj1 : {prop1: 'something1',
prop2: 'something2',
active: someCondition ? true : false}
};
检查对象的active
属性的常规方法:
if(otherObj.Obj1.active) { //do something using prop1 and/or prop2 }.
如果你这样做:otherObj.Obj1 = true;
你正在消灭你的对象