Javascript 有什么理由在这里返回true吗?
因此,这种类型的结构出现在我项目中的大多数javascript文件中。我的问题是,有没有理由在setElements之后返回true并在“if”语句中调用它,比如:Javascript 有什么理由在这里返回true吗?,javascript,jquery,Javascript,Jquery,因此,这种类型的结构出现在我项目中的大多数javascript文件中。我的问题是,有没有理由在setElements之后返回true并在“if”语句中调用它,比如: App.ModuleName.setElements = function() { App.ModuleName.el = { title: $("#title") } return true; }; App.ModuleName.init = function() { if (A
App.ModuleName.setElements = function() {
App.ModuleName.el = {
title: $("#title")
}
return true;
};
App.ModuleName.init = function() {
if (App.Common.checkDependency('ModuleName')) {
if(App.ModuleName.setElements()) {
//do something
}
}
};
与删除返回值true并仅执行以下操作相反:
if (App.Common.checkDependency('ModuleName')) {
App.ModuleName.setElements();
//do something;
}
?在您详细说明的情况下,没有理由返回true。我怀疑这只是你用来开发代码的承包商的编码惯例。他们的做法可能是能够验证调用是否成功,对于更复杂的调用,这不是一个坏主意。在您详述的情况下,没有理由返回true。我怀疑这只是你用来开发代码的承包商的编码惯例。他们的做法可能是能够验证调用是否成功,对于更复杂的调用,这不是一个坏主意。根据提供的代码,这是不必要的。在这种情况下,您的代码版本更清晰 但是,您确实必须查看项目中函数的所有用法,以确定它是否可以重构 假设您正在执行某种SQL事务,但有些操作必须完成或回滚,而这些操作不是SQL事务的一部分
App.OtherModuleName.init = function() {
bool elementsWereSet = false;
Transaction transaction = new Transaction(model);
try {
// Do some processing
DoSomething(model, transaction);
elementsWereSet = App.ModuleName.setElements();
DoSomethingElse(model, transaction);
} catch (Exception ex) {
transaction.rollBack();
if (elementsWereSet) {
manuallyRollBackElements();
}
}
};
请注意,elementsWereSet
在setElements
返回true
时,如果在任何位置引发异常,则elementsWereSet
将为false
如果发生异常,bool将确定是否必须手动回滚任何内容
实现这种动态还有其他方法,但我要说的是,我在一个主要的软件中至少使用过一次这种模式。根据提供的代码,这是没有必要的。在这种情况下,您的代码版本更清晰 但是,您确实必须查看项目中函数的所有用法,以确定它是否可以重构 假设您正在执行某种SQL事务,但有些操作必须完成或回滚,而这些操作不是SQL事务的一部分
App.OtherModuleName.init = function() {
bool elementsWereSet = false;
Transaction transaction = new Transaction(model);
try {
// Do some processing
DoSomething(model, transaction);
elementsWereSet = App.ModuleName.setElements();
DoSomethingElse(model, transaction);
} catch (Exception ex) {
transaction.rollBack();
if (elementsWereSet) {
manuallyRollBackElements();
}
}
};
请注意,elementsWereSet
在setElements
返回true
时,如果在任何位置引发异常,则elementsWereSet
将为false
如果发生异常,bool将确定是否必须手动回滚任何内容
有其他方法实现这种动态,但我要说的是,我在一个主要软件中至少使用过一次这种模式。在这种情况下没有,但可能有我们看不到的原因。模块中的其他方法是否返回错误、抛出错误、返回错误代码、出错时返回false等?由于政策或历史原因,这里可能只是为了实现方法之间的奇偶性。@JoeFrambach不是真的,不是,也许这是最初的意图。它是由顾问在项目开始时编写的。他们可能已经按代码行支付了成功的代码测试可以在
setElements
方法之前编写,并且假定setElement
可能需要测试错误。在这种情况下不是这样,但可能有我们看不到的原因。是否还有其他原因模块中的方法返回错误、抛出错误、返回错误代码、出错时返回false等?由于政策或历史原因,这里可能只是为了实现方法之间的奇偶性。@JoeFrambach不是真的,不是,也许这是最初的意图。它是由顾问在项目开始时编写的。他们可能已经按照每行代码付费。成功的代码测试可能在setElements
方法之前编写,并且假定setElement
可能需要测试错误。