我有一個對象獲取對象值
var actions = {
'photos': function()
{
var self = this; // self = actions
$.get('./data.php?get=photos', function(data)
{
self.result = data;
});
},
'videos': function()
{
var self = this;
$.get('./data.php?get=videos', function(data)
{
self.result = data;
});
}
};
每個函數創建於actions
多了一個項目叫result
然後,而不是switch
我用這個(工作好):
if (actions[action])
{
actions[action](); // call a function
console.log(actions);
console.log(actions.result);
}
action
是值爲photos
或videos
的變量。
console.log(actions)
給出了這樣的:
Object
message: function()
messages: function()
profile: function()
profile-edit: function()
result: "<div>...</div>"
__proto__: Object
所以我認爲這是result
項actions
與價值"<div>...</div>"
。
但,console.log(actions.result)
回報undefined
。
爲什麼?
我知道所有這些代碼可能會重新編寫,但我想了解undefined
的原因。
你的問題是相當不清楚。 'action'是對'actions.photos' /'actions.videos'(正如@dystroy認爲的那樣)或字符串'「photos」'/'「videos」'的引用嗎? 'items [action]();'中的'items'是什麼?如果'action'是對'actions.photos'的引用,那麼爲什麼要使用函數引用來索引另一個對象呢? –
'items [action]()'是一個錯字,應該是'actions [action]()'而不是。固定。 –
這樣做更有意義。 :-)所以'動作'是一個字符串('「照片」或「視頻」),對吧? –