我有一个对象获取对象值
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]()'而不是。固定。 –
这样做更有意义。 :-)所以'动作'是一个字符串('“照片”或“视频”),对吧? –