Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在网页中调用可变长度JavaScript方法的智能方法_Javascript - Fatal编程技术网

在网页中调用可变长度JavaScript方法的智能方法

在网页中调用可变长度JavaScript方法的智能方法,javascript,Javascript,我创建了一个新的web应用程序,它有10个页面/表单,在加载这些页面/表单的过程中,其中6个页面/表单调用相同的JavaScript方法,4个页面/表单调用相同的JavaScript方法以及一些附加方法。很明显,我可以在页面中单独调用这些方法,但我想知道如何以更智能的方式实现这一点 目前我所做的就是调用页面底部的方法,如: <script> somemethod1(someparam1); somemethod2(someparam1, someparam2); somemetho

我创建了一个新的web应用程序,它有10个页面/表单,在加载这些页面/表单的过程中,其中6个页面/表单调用相同的JavaScript方法,4个页面/表单调用相同的JavaScript方法以及一些附加方法。很明显,我可以在页面中单独调用这些方法,但我想知道如何以更智能的方式实现这一点

目前我所做的就是调用页面底部的方法,如:

<script>
 somemethod1(someparam1);
somemethod2(someparam1, someparam2);
somemethod3();
somemethod4();
somemethod5(someparam1);
</script>

somemethod1(someparam1);
somemethod2(someparam1,someparam2);
方法3();
方法4();
somemethod5(someparam1);
最好打电话给这样的人:

<script>
 Execute('somemethod1', 'somemethod2''somemethod3', 'somemethod4', 'somemethod5')();
</script>

执行('somemethod1','somemethod2','somemethod3','somemethod4','somemethod5')();
调用
Execute('somemethod1')之类的函数会更好,
“somemethod2”、“somemethod3”、“somemethod4”、“somemethod5”)()

如果不需要将参数传递给单个方法,则可以执行以下操作:

[func1, func2, func3].map(function(func){
    func();
});

否则,这样做的方法就是像现在这样用所需的参数调用方法,除非创建一个抽象,在这个抽象中可以传递要调用的方法及其关联的参数,这样做确实有很大的好处。

我认为这样做不是一个好的做法。当然,如果您不需要传递任何参数,那么最好让
执行这样的函数

你可以这样做

函数test1(){
log('test1');
}
函数test2(){
log('test2');
}
var Execute=function(){
for(var i=0;iExecute('test1','test2')
如果您有统一的过程,并且需要按照特定的顺序调用它们,就像下面的迭代嵌套数组示例一样,那么您可以使用给定的方案,该方案对之前的函数使用以下函数

这可能不适用于其他需求

函数回调(数组){
this.array=数组;
}
Object.defineProperties(Callback.prototype{
开始:{
get:function(){
返回此.getCallback(0);
}
},
getCallback:{
价值:功能(一){
var=这个;
返回this.array[i].bind({get next(){return that.getCallback(i+1);}});
}
}
});
//范例
函数getSubmodel(模型,子模型){
var callback=新回调([
函数(a){a.Categories.forEach(this.next);},
函数(a){a.forEach(this.next);},
函数(a){if(a.brandname==model){a.models.forEach(this.next);},
函数(a){if(a.name==子模型){a.submodel.forEach(this.next);},
函数(a){result.push(a.name);}
]),
结果=[];
data.forEach(callback.start);
返回结果;
}
风险值数据=[{
店名:“之字形手机”,
Shopid:“asdef1234”,
类别:[[{
型号:[{
子模型:[{
价格:空,
名称:“Lumia 735 TS”
}, {
价格:“3200”,
名称:“Lumia 510”
}],姓名:“Lumia”
}],
品牌名称:“诺基亚”,
}]]
}];
log(getSubmodel('Nokia','Lumia')

作为控制台包装{max height:100%!important;top:0;}
将引用存储在数组中,对其进行迭代并调用。这只是编程的一部分,用各种参数调用各种函数。如果有帮助的话,您可以将调用转移到一个不同的函数,但这只是一个表面的解决方案。您可以看看答案。@NinaScholz:什么意思。我刚刚在我的电脑上测试了它,它按预期工作。op用自定义参数更改了要求,这些参数在您的提案中没有调用,dv不是从我这里调用的。@NinaScholz:谢谢-我没有注意到这一点。有时候,我觉得这个社区的某些成员在进行一场“疯狂的杀戮”,他们在没有经过思考和思考的情况下,从臀部向下拉选票开火。。。。。