从下面的代码可以看出,函数菜单是用三个参数调用的。从菜单函数中,如何根据调用的菜单来获取名称或不同的名称?
var menus = {
name: menu('Control', [
{
label: 'Public Class My Robot',
trigger: true,
script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
helptext: "Beginning fo your program",
depend: "package edu.team2648.frcEasyJ;"
}], false),
diffname: menu('Control2', [
{
label: 'Public Class My Robot',
trigger: true,
script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
helptext: "Beginning fo your program",
depend: "package edu.team2648.frcEasyJ;"
}], false),
};另外,菜单是什么类型的变量?(数组,对象,...?)下面两段代码有什么不同:
var test = ["str1","str2","str3","str4"];
var test2 = {id:"str1",id2:"str2",id3:"str3",id4:"str4"};发布于 2011-07-31 01:51:18
由于JavaScript中没有关联数组,因此如果要分配key:val对并模拟关联数组功能和引用行为,则需要使用对象。
var test = ["str1","str2","str3","str4"];表示数字索引的数组。我们看到对数组进行分组的方括号,并且我们只看到逗号分隔的值。如果我们想访问'str3‘,我们会使用test[2]。
var test2 = {id:"str1",id2:"str2",id3:"str3",id4:"str4"};是一个对象。我们可以看到对对象参数进行分组的花括号,还可以看到键:val对被冒号分割。如果我们想访问'str3',我们会使用test2.id3
初学者可能会感到困惑的一件事是,对象可以包含数组,而数组可以包含对象,因此方括号和花括号可以混合在一起,并且不会立即明显。可以通过像var arr = new Array()这样的数组对象创建数组。为了简单起见,将它们分开,并根据它们的预期行为调用它们:[] =[]和{} = object。
在您的示例中:
var menus = {
name: menu('Control', [
{
label: 'Public Class My Robot',
....您可以看到menus是一个对象,因为它被分配给了一个大括号。您可以看到,name是一个键,menu('Control'是一个值,在本例中恰好是一个函数。它的第一个参数是一个显而易见的字符串,它的第二个参数是一个只包含一个值的数组[],它是一个具有键的对象{}:val对- label是键,'Public Class My Robot'是值,在本例中只是一个字符串。
发布于 2011-07-31 01:45:39
test是一个数组,test2是一个对象。
菜单是一个对象。
发布于 2011-07-31 01:51:28
将test变量赋给Array文本。将test2变量赋给Object文本。
我读到过--但无法确认--从技术上讲,Array和Object与其他语言中的散列映射构造最接近,不同之处在于Arrays只有Number键,而Objects可以有任何类型作为键类型(特别是Strings)。在JavaScript中不建议在Array中使用String键(即使用关联Array)。
将menus变量赋给Object文本。
请澄清您所说的意思:
菜单函数中的
如何根据调用的菜单获得名称或不同的名称?
如果menu Function返回任何类型的对象,键name或diffname将映射到该值:即
var nameValue = menus.name ;
var nameDiffValue = menus.diffname ;https://stackoverflow.com/questions/6884867
复制相似问题