Javascript 我可以在函数中定义一个简单的函数,以便封装和重用函数中的不同情况吗?

Javascript 我可以在函数中定义一个简单的函数,以便封装和重用函数中的不同情况吗?,javascript,Javascript,假设我有一个logOut()函数,用户可以通过几种不同的方式之一登录。因此,在logOut()函数中,我可能会检查Facebook auth用户上下文。如果存在这种情况,那么我将执行代码将用户从Facebook注销,然后导航到登录主页。类似地,用户可能会通过苹果登录,我将以类似的方式处理这种情况。是否可以在此logOut()函数的开头定义某种类型的函数变量,如: const navigateHome = props.navigation.navigate('LoginHome'); 然后根据代

假设我有一个logOut()函数,用户可以通过几种不同的方式之一登录。因此,在logOut()函数中,我可能会检查Facebook auth用户上下文。如果存在这种情况,那么我将执行代码将用户从Facebook注销,然后导航到登录主页。类似地,用户可能会通过苹果登录,我将以类似的方式处理这种情况。是否可以在此logOut()函数的开头定义某种类型的函数变量,如:

const navigateHome = props.navigation.navigate('LoginHome');
然后根据代码中的大小写将navigateHome变量重新用作指令,如:

if(loggedInViaFacebook){
   navigateHome;
}else if(loggedInViaApple){
   navigateHome;
}
这是一个非常简单的示例,但我只想了解这在概念上是否可行,以便我可以利用它作为一种技术

const navigateHome = () => {
   props.navigation.navigate('LoginHome');
}


当然可以。您可以将函数声明为全局函数,如下所示:

const navigateHome = () => props.navigation.navigate('LoginHome');
const logoutFB = () => { //doSomething with multiple line};
const pingIP = function (ip){ ...};
而且可以在任何地方使用

if(loggedInViaFacebook){
   navigateHome();
 }else if(loggedInViaApple){
   logoutFB();
   pingIP();
 }

函数可能包含其他函数。可以在同一范围内调用它们(假设您使用的是
const
而不是
var


是的,您可以将该函数作为局部变量放入
注销
函数中,但不可以,您需要实际编写一个
函数navigateHome(){…}
,然后使用
navigateHome()调用它其他地方。可能重复@AlexeiLevenkov不,不是那个one@Bergi在我看来OP还不能定义任何函数。。。这篇文章展示了很多方法来做到这一点。。。事实上,也许OP需要一些其他的东西——既然你理解了什么是实际问题,就要澄清……AlexeiLevenkov建议的副本肯定有很多功能的例子,但是其他JS主题也是如此。OP没有问两个函数语法之间的区别,他似乎根本不知道如何定义一个函数,以及在赋值中放入代码的区别。你是对的。我用错词了。我想说,
this
availability.OP不需要全局声明的函数,他明确要求“在这个logOut()函数的开头定义某种类型的函数变量”。
if(loggedInViaFacebook){
   navigateHome();
 }else if(loggedInViaApple){
   logoutFB();
   pingIP();
 }
function someParentFunction() {

  const navigateHome = function() {
    props.navigation.navigate('LoginHome');
  }

  if(loggedInViaFacebook){
    navigateHome();
  }
  else if(loggedInViaApple){
    navigateHome();
  }

}