我是Javascript的新手,语法使我很烦。每个函数声明输出后,输出都会给我未定义的警报。
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());
}
答案 0 :(得分:2)
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
功能以使其正常工作。
答案 1 :(得分:2)
您不需要将每个函数调用都用alert()包装,因为这些函数返回未定义的值并会使您感到困惑。另外alert()接受一个参数,所以那里的逗号(',')没有帮助。
尝试一下:
let func = [
{
sayHi: function(){
alert('hello');
},
saybi: function(){
alert('Bye');
},
},{
sayName: function(name) {
alert('Hi !! ' + 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();
}
答案 2 :(得分:0)
效果很好。 sayHi()不返回任何内容,因此返回undefined。这就是您在最后一行中要提醒的内容。