Javascript 函数返回一个错误(ESLint)将函数移动到正文根
我有以下函数。代码完成了我需要它做的事情,但是由于声明的原因,它的结构不正确,因此它给出了“(ESLint)move function to body root”错误: 这是我的代码:Javascript 函数返回一个错误(ESLint)将函数移动到正文根,javascript,eslint,Javascript,Eslint,我有以下函数。代码完成了我需要它做的事情,但是由于声明的原因,它的结构不正确,因此它给出了“(ESLint)move function to body root”错误: 这是我的代码: function onSuccess(result) { if (result) { function GetTotal(result) { var totBal = 0;
function onSuccess(result) {
if (result) {
function GetTotal(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
}
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
如果(结果){
函数GetTotal(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
这就是我所尝试的:
function onSuccess(result) {
var fn;
if (result) {
fn=function GetTotal(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
};
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
var-fn;
如果(结果){
fn=函数GetTotal(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
“(ESLint)move function to body root”得到解决,但在上面的示例中,它返回一个错误,表示“getTotal未定义”在第二个示例中,函数现在位于变量
fn
内。您可以通过调用fn()
来访问它。另一个选项是重命名变量以反映函数行为,然后用新名称调用它
var-fn;
fn=函数GetTotal(结果){
log('function called!');
}
fn()代码>在第二个示例中,函数现在位于变量fn
内。您可以通过调用fn()
来访问它。另一个选项是重命名变量以反映函数行为,然后用新名称调用它
var-fn;
fn=函数GetTotal(结果){
log('function called!');
}
fn()代码>然后函数声明在右边。它成为左侧变量的局部变量。在主功能范围中使用名称GetTotal
,而不是fn
function onSuccess(result) {
var GetTotal;
if (result) {
GetTotal = function(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
};
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
var GetTotal;
如果(结果){
GetTotal=函数(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
然后函数声明在右侧。它成为左侧变量的局部变量。在主功能范围中使用名称GetTotal
,而不是fn
function onSuccess(result) {
var GetTotal;
if (result) {
GetTotal = function(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
};
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
var GetTotal;
如果(结果){
GetTotal=函数(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
您可以按照ESLint的建议将函数移动到body root,如下所示
function onSuccess(result) {
function GetTotal(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
}
if (result) {
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
函数GetTotal(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
或者干脆扔掉这个函数,因为它在一个函数中,而且你似乎不再使用它了
function onSuccess(result) {
if (result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
var span = document.getElementById("Total");
span.innerHTML = str
}
}
函数成功(结果){
如果(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
您可以按照ESLint的建议将函数移动到body root,如下所示
function onSuccess(result) {
function GetTotal(result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
return str;
}
if (result) {
var span = document.getElementById("Total");
span.innerHTML = GetTotal(result);
}
}
函数成功(结果){
函数GetTotal(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
或者干脆扔掉这个函数,因为它在一个函数中,而且你似乎不再使用它了
function onSuccess(result) {
if (result) {
var totBal = 0;
var str = 'R';
for (var i = 0; i < result.length; i++) {
totBal += result[i].Price;
}
str += totBal.toFixed(2);
var span = document.getElementById("Total");
span.innerHTML = str
}
}
函数成功(结果){
如果(结果){
var-totBal=0;
var str='R';
对于(变量i=0;i
为什么要在如此有限的范围内定义函数?为什么不直接进行计算呢?你不能在任何地方重复使用函数,所以你不需要额外的语法来定义它。或者,为什么不把函数移到body root?为什么要在如此有限的范围内定义函数?为什么不直接进行计算呢?你不能在任何地方重复使用这个函数,所以你不需要额外的语法来定义它?