Javascript中变量的函数名
我从如下数组创建上下文菜单:Javascript中变量的函数名,javascript,Javascript,我从如下数组创建上下文菜单: var menu1 = [ { 'OPTION1':function(menuItem,menu) { // code for OPTION1 } }, { 'OPTION2':function(menuItem,menu) { // code for OPTION2 } } ]; 当用户右键单击我的网页时,会出现一个菜单,其中包含选项1和选项2 我需要动态
var menu1 = [
{
'OPTION1':function(menuItem,menu) {
// code for OPTION1
}
},
{
'OPTION2':function(menuItem,menu) {
// code for OPTION2
}
}
];
当用户右键单击我的网页时,会出现一个菜单,其中包含选项1和选项2
我需要动态更改函数名,因为它是上下文菜单选项文本有没有办法将函数名声明为变量?
这就是我想要的:
var optionsletters = {};
optionsletters['option1'] = 'option_one';
optionsletters['option2'] = 'option_two';
var menu1 = [
{
optionsletters['option1']:function(menuItem,menu) {
// code for OPTION1
}
},
{
optionsletters['option2']:function(menuItem,menu) {
// code for OPTION2
}
}
];
编辑#1:这是我一直在使用的插件
编辑#2:我需要这个,以允许将语言从西班牙语更改为英语,反之亦然。类似于:
var name = 'option_one',
optionsletters = {};
optionsletters[name] = function() { ... };
您不能像在第二个示例中尝试的那样使用对象文字符号来设置任意属性。这不会阻止您手动设置属性:
function make_menu_item(name, func){
var item = {}; //Create an empty object
item[name] = func; //Assign the property with the name you choose
//(obj['option1'] is equivalent to obj.option1 in Javascript)
return item;
}
var menu = [
make_menu_item('option1', function () {...}),
make_menu_item('option2', function () {...})]
您是否在询问是否可以将密钥从'OPTION1':function(){}更改为'OPTION1':function(){}?如果是这样的话,只需将函数复制到一个新变量onclick即可。如果您要求的是能够将某个“option1”作为类似option1的字符串调用,但实际上可以调用option1(){},那么您可以尝试一些不同的方法。如果您可以使数组类似于arr[{'name':'option1','func':function(){}],那么您可以引用数组[0]。名称和数组[0]。func 使用当前的代码,看起来像是在用字符串破坏函数
JS非常有表现力,所以有一百万种方法可以做任何事情。函数是一级对象,因此可以作为参数传递,甚至可以从函数返回。这正是我需要的。谢谢