首页 > 解决方案 > “未定义”作为数组的输出

问题描述

我是 Javascript 的新手,语法让我很困惑。每次函数声明输出后,输出都会给我 undefined 作为警报。

let func=[
    {
        sayHi:function(){
            alert('hello');
        },
        saybi:function(){
            alert('Bye');
        }
    },
    {
        sayName:function(name){
            alert('Hii !! ', +name);
        },
        askName:function(){
            alert("What's your name ??");
        }
    }
];

alert(func[0].sayHi());

let name=prompt("What's your name ?","");
if(name!="")
{
    alert(func[1].sayName(name));
}
else{
    alert(func[1].askName());
}

标签: javascriptarrays

解决方案


func数组调用函数中的alert函数。但是您alert在调用类似alert(func[0].sayHi()).

您应该调用如下函数:

let func = [{
    sayHi: function() {
      alert('hello');
    },
    saybi: function() {
      alert('Bye');
    }
  },
  {
    sayName: function(name) {
      alert('Hii !! ' + name);
    },
    askName: function() {
      alert("What's your name ??");
    }
  }
];

func[0].sayHi();

let name = prompt("What's your name ?", "");
if (name != "") {
  func[1].sayName(name);
} else {
  func[1].askName();
}

更新:我已经修复sayName了正常工作的功能。


推荐阅读