也许是个愚蠢的问题,但是:
我如何分解这类代码?
var rsc = this.checkRsc(path)
if (rsc)基本上,我想在使用任何方法之前检查一个事物是否为空。
checkRsc: function(path) {
var rsc = manager.get(path);
if (rsc != undefined)
return rsc;
else
return null;
},
func1: function(path) {
var rsc = this.checkRsc(path)
if (rsc)
this.doStuff(rsc);
},
func2: function(path) {
var rsc = this.checkRsc(path)
if (rsc)
this.doStuffAnotherStuff(rsc);
},
func3: function(path) {
var wave = this.checkRsc(path)
if (wave)
this.andAgain(wave);
},
func4: function(path) {
var rsc = this.checkRsc(path)
if (rsc)
this.AndsomethingElse(rsc);
}发布于 2016-02-18 15:15:18
传递要执行的函数,如下所示
checkRsc: function(path, func, context) {
var rsc = manager.get(path);
if (rsc != undefined)
return func.call(context, rsc);
else
return null;
},然后像这样调用它
this.checkRsc(path, this.doStuff, this)
...
this.checkRsc(path, this.doStuffAnotherStuff, this)
...
this.checkRsc(path, this.andAgain, this)备注:我也建议传递上下文,因为如果您想在嵌套对象中执行函数,这会派上用场。例如,
this.checkRsc(path, this.nested.again, this.nested)现在,
return func.call(context, rsc);会像这样工作
return [this.nested.again func obj (without context)].call(this.nested, rsc);https://stackoverflow.com/questions/35485121
复制相似问题