检查子对象是否为true

时间:2014-02-27 20:33:50

标签: javascript function object

为什么这不起作用?我想用这段代码检查对象的子对象是否为true / false,但是当我尝试它时它总是返回false。

var testobject = {
    a:true,
    b:false
}

function test(check) {
    if (testobject.check) {
        console.log('it works')
    }
    else {
        console.log('it doesn\'t work')
    }
}
test('a');

3 个答案:

答案 0 :(得分:1)

当您使用testobject.check时,check是对象中属性的标识符,它不是变量check

使用括号语法以字符串作为名称访问属性:

if (testobject[check]) {

答案 1 :(得分:1)

因为您的testobject没有名为check的属性。您要找的是testobject[check]

如果您使用字符串作为属性,则可以使用括号[]表示法。

testobject.a相当于testobject["a"]

答案 2 :(得分:0)

在使用字符串时,我通常使用数组样式语法引用对象。不确定你的方式是否有效,但这应该是。我会暂时测试以验证:

function test(check) {
    if ( testobject[check] ) {
        console.log('it works')
    }
    else {
        console.log('it doesn\'t work')
    }
}
test('a')

是的,有效...这里有一个JSFiddle:

http://jsfiddle.net/yz34V/