使用内部函数(javascript)的优点

使用内部函数(javascript)的优点,javascript,function,Javascript,Function,这可能不是一个非常具体的问题,但我想知道使用内部函数有什么好处?我最近开始阅读闭包(javascript),它们总是引用内部函数 var pet = function(name) { var getName = function() { return name; } return getName; } myPet = pet('Vivie'); myPet(); 为什么我们不想分离getName

这可能不是一个非常具体的问题,但我想知道使用内部函数有什么好处?我最近开始阅读闭包(javascript),它们总是引用内部函数

var pet = function(name) {   
  var getName = function() {
    return name;                          
  }
  return getName;           
}
myPet = pet('Vivie');
myPet();
为什么我们不想分离getName函数并引入一个“name”参数,这样我们就可以独立地调用它呢

var pet = function(name){
  return getName();
}
function getName(name){
  return name;
}
谢谢,我对javascript还不太熟悉

试试这篇文章

我在这里复制了文章中解释的部分代码。 运行此代码段以查看内部函数的行为


函数外部(){
var b=10;
var c=100;
函数内部(){
var a=20;
console.log(“a=“+a+”b=“+b”);
a++;
b++;
}
返回内部;
}
var X=outer();//第一次调用outer()
变量Y=outer();//第二次调用outer()
//outer()函数执行结束
X();//第一次调用X()
X();//第二次调用了X()
X();//第三次调用了X()
Y();//第一次调用Y()

这是非常特定于上下文的。在调用时,您可能没有访问
name
的权限(如果您有访问权限,则会完全破坏getter函数的用途)。有时,您需要转换函数的操作方式,并接受函数作为参数,然后返回一个新的“修改”函数。您希望将getName函数放在内部,因为它是该“类”的一个方法,并且只有在该函数内部可见才能实现封装。@PaulBota在这种情况下,构造函数不会返回对该函数的引用;函数将成为构造对象的一部分。