我有一个要求,我需要为我的应用程序中的某些屏幕执行 js 代码,并且我需要使用 viewid 命名函数,例如 myScreen1()..myScreen3()。
但是由于所有函数名的函数定义都相同,有没有办法声明所有函数名都引用相同的定义?
我有一个要求,我需要为我的应用程序中的某些屏幕执行 js 代码,并且我需要使用 viewid 命名函数,例如 myScreen1()..myScreen3()。
但是由于所有函数名的函数定义都相同,有没有办法声明所有函数名都引用相同的定义?
以下将起作用,但也许您应该重新考虑您的设计,因为很可能它也可能只使用一个函数名称。
var func = function() {
// definition goes here
}
var myScreen1 = func;
var myScreen2 = func;
将它们包装在另一个函数中。
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");
压缩一点@Peter Van der Wal 的代码,
var myScreen1, myScreen2, myScreen3;
myScreen1 = myScreen2 = myScreen3 = function() {
// definition goes here
};
但真的,如果...
所有函数名称的函数定义都相同
...你不能用,或myScreen()
代替吗?myScreen1()
myScreen2()
myScreen3()
我很好奇:如果所有人都这样做,你如何决定你打电话给哪一个?
以下应该可以工作,但可以像最后显示的那样进行划分。
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);
这样你就不会多次编写代码。