2012-06-27 54 views
1

是否可以將一個對象的鍵$thumbnailContainer設置爲同一對象gallerySelectors內的另一個對象thumbnailImg的值?在創建時設置Javascript對象值

例子:

var gallerySelectors = { 
    '$thumbnailContainer' : $('#thumb'), 
    'thumbnailImg' : this.$thumbnailContainer.find('img') 
}; 

回答

0

沒有,因爲this不會被綁定到你展示情況的對象。

我不認爲有辦法做到這一點。

你可以嘗試

var gallerySelectors = { 
    '$thumbnailContainer' : $('#thumb'), 
    'thumbnailImg' : gallerySelectors.$thumbnailContainer.find('img') 
};      ^--------------- NOTE!!! 

,但我不知道我是否會相信這個到處工作。我想你不得不看看語言規範,看看成員是否總是保證按順序初始化。

我也只是採取簡單的方法:

var gallerySelectors = { 
    '$thumbnailContainer' : $('#thumb'), 
    'thumbnailImg' : $('#thumb').find('img') 
}; 
+0

我相信你不是打算這樣輸入的: '$('#thumb')。$ thumbnailContainer.find('img')' – nbrooks

+1

@nbrooks heh,no。修正了,謝謝! – sandradev

+1

無賴。不管怎麼說,還是要謝謝你。這是我可能最終要做的方法。 –

1

沒有,很遺憾,沒有。幸運的是,另類也很簡單:

var gallerySelectors = { 
    $thumbnailContainer: $('#thumb') 
}; 

gallerySelectors.thumbnailImg = gallerySelectors.$thumbnailContainer.find('img'); 

你也可以做一個函數來爲你做的,如果問題是要傳遞對象直列。