如何在Javascript中从另一个函数调用函数?
我有一个非工作代码。我认为它只需要一点mods,应该可以正常工作。我想不出来。刚开始学习JS如何在Javascript中从另一个函数调用函数?,javascript,Javascript,我有一个非工作代码。我认为它只需要一点mods,应该可以正常工作。我想不出来。刚开始学习JS var add = function (a, b) { if (typeof a !== 'number' || typeof b !== 'number') { throw { name: 'TypeError', message: 'add needs numbers' } } return a
var add = function (a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw {
name: 'TypeError',
message: 'add needs numbers'
}
}
return a + b;
}
var try_it = function (a, b) {
try {
add(a, b);
} catch (e) {
document.writeln(e.name + ': ' + e.message);
}
}
document.writeln(try_it(2, 7));
它不起作用。我得到“未定义”错误。但是,如果我直接调用函数add
var add = function (a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw {
name: 'TypeError',
message: 'add needs numbers'
}
}
return a + b;
}
var try_it = function (a, b) {
try {
add(a, b);
} catch (e) {
document.writeln(e.name + ': ' + e.message);
}
}
document.writeln(add(2, 7));
。。。我得到了想要的结果。功能一定有问题,试试看 这是因为您的
try\u It()
没有返回值,而您的add()
没有返回值
试着这样做:
var try_it = function (a, b) {
var result; // storage for the result of add()
try {
result = add(a, b); // store the value that was returned from add()
} catch (e) {
document.writeln(e.name + ': ' + e.message);
}
return result; // return the result
}
这将返回add()
的结果。您得到的是未定义的
,因为这是未指定的默认返回值
编辑:将其更改为将结果存储在变量中,而不是立即返回。这样您仍然可以捕获错误。这是因为您的
try\u It()
没有返回值,而add()
没有返回值
试着这样做:
var try_it = function (a, b) {
var result; // storage for the result of add()
try {
result = add(a, b); // store the value that was returned from add()
} catch (e) {
document.writeln(e.name + ': ' + e.message);
}
return result; // return the result
}
这将返回add()
的结果。您得到的是未定义的
,因为这是未指定的默认返回值
编辑:将其更改为将结果存储在变量中,而不是立即返回。这样,您仍然可以捕获错误