默认返回属性值

时间:2013-06-07 17:58:55

标签: javascript

我想知道是否有办法为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'

任何建议?感谢

2 个答案:

答案 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;你正在消灭你的对象

相关问题