我有一个需求,需要在我的应用程序的某些屏幕上执行js代码,并且我需要以视图ID命名函数,例如myScreen1().. myScreen3()。
但由于所有函数名称的函数定义相同,是否有一种声明方式可以使所有函数名称都引用相同的定义?
但由于所有函数名称的函数定义相同,是否有一种声明方式可以使所有函数名称都引用相同的定义?
var func = function() {
// definition goes here
}
var myScreen1 = func;
var myScreen2 = func;
压缩一下@Peter Van der Wal的代码:
var myScreen1, myScreen2, myScreen3;
myScreen1 = myScreen2 = myScreen3 = function() {
// definition goes here
};
但如果真的需要…
对于所有函数名称,函数定义都是相同的。
那么你为什么不使用 myScreen()
而不是 myScreen1()
, myScreen2()
或者 myScreen3()
呢?
我很好奇:如果它们都做同样的事情,你如何决定调用哪一个?
function handleScreen( screenName ) {
// do stuff in common with all screens here
// and call specific functions for specific screens
if (typeof window[screenName] == "function") {window[screenName]();}
}
function screen1() {
//do stuff for screen 1
}
function screen2() {
//do stuff for screen 2
}
handleScreen("screen2");
function handleScreen( viewID ) {
if(viewID == 1){
// Do Stuff For Screen 1
} else if(viewID == 2){
// Do Stuff For Screen 2
}
}
handleScreen(2);
function handleScreen( viewID ) {
if(viewID == 1){
displayLoadSign();
loadList();
hideLoadSign();
} else if(viewID == 2){
showConnectionError();
displayLoadSign();
}
}
handleScreen(2);
这样你就不必多次编写代码了。