2014-02-27 122 views
0

爲什麼不能正常工作?我想用這段代碼檢查對象的子對象是真/假,但是當我嘗試它時它總是返回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'); 

回答

1

當您使用testobject.checkcheck是在對象的屬性標識符,它不是變量check

使用括號語法使用一個字符串名稱訪問屬性:

if (testobject[check]) { 
1

因爲您的TestObject沒有一個叫check屬性。你正在尋找的是testobject[check]

如果你使用一個屬性的字符串,那麼你可以使用括號[]表示法。

testobject.a相當於testobject["a"]

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/