Javascript (函数($){..})(jQuery);无法在外部调用此包装器/闭包中定义的函数

Javascript (函数($){..})(jQuery);无法在外部调用此包装器/闭包中定义的函数,javascript,jquery,Javascript,Jquery,我在下面的块中定义了一个函数,我试图在块外调用那个函数,它给了我函数未定义的错误。为什么 (function($) { function addNumbers(num1, num2) { return num1 + num2; } })(jQuery); addNumbers(2,3) return error undefined function. 如何使addNumbers()在该块之外调用?这是一个基本的范围界定问题。如

我在下面的块中定义了一个函数,我试图在块外调用那个函数,它给了我函数未定义的错误。为什么

    (function($) {
       function addNumbers(num1, num2) {
          return num1 + num2;
       }

    })(jQuery);

addNumbers(2,3) return error undefined function.

如何使addNumbers()在该块之外调用?

这是一个基本的范围界定问题。如果在另一个函数中声明一个函数,则只能在该函数中访问该函数。您无法在外部访问它。

这是一个基本的范围界定问题。如果在另一个函数中声明一个函数,则只能在该函数中访问该函数。您不能在外部访问它。

在其他函数中定义的函数的作用域为该函数。它们只能由该范围内的其他代码调用。因此,为了调用
addNumbers()
函数,调用必须位于
addNumbers()
函数的父函数内部

var test = (function($) {
  return function addNumbers(num1, num2) {
    return num1 + num2;
  }
}(jQuery));

console.log(test(2,3));
示例:

功能测试(){
函数addnumber(num1,num2){
控制台日志(num1+num2);
}
地址编号(2,3);
}
test()

在其他函数中定义的函数的作用域为该函数。它们只能由该范围内的其他代码调用。因此,为了调用
addNumbers()
函数,调用必须位于
addNumbers()
函数的父函数内部

var test = (function($) {
  return function addNumbers(num1, num2) {
    return num1 + num2;
  }
}(jQuery));

console.log(test(2,3));
示例:

功能测试(){
函数addnumber(num1,num2){
控制台日志(num1+num2);
}
地址编号(2,3);
}
test()

您的问题是在一个作用域(匿名函数)中定义函数,然后尝试从另一个作用域(全局函数)运行它。你必须这样做,反之亦然:

// Declare function first.
function addNumbers(num1, num2) {
   return num1 + num2;
}

// Now, inside anonymous function - you can use your function (because it in global scope, and accessible from here).
(function($) {
   console.log(addNumbers(2,3));
})(jQuery);

您的问题是在一个作用域(匿名函数)中定义函数,然后尝试从另一个作用域(全局函数)运行它。你必须这样做,反之亦然:

// Declare function first.
function addNumbers(num1, num2) {
   return num1 + num2;
}

// Now, inside anonymous function - you can use your function (because it in global scope, and accessible from here).
(function($) {
   console.log(addNumbers(2,3));
})(jQuery);

您只需将
内部
函数返回给变量,然后在外部任何地方使用它

var myFunction=(函数($){
函数addnumber(num1,num2){
返回num1+num2;
}
返回addnumber;
})(jQuery);
警报(myFunction(2,3))

您只需将
内部
函数返回到一个变量,并在外部任何地方使用它即可

var myFunction=(函数($){
函数addnumber(num1,num2){
返回num1+num2;
}
返回addnumber;
})(jQuery);
警报(myFunction(2,3))

即时功能是匿名的。所以,如果您想从外部访问内部函数,就必须返回值或函数

var test = (function($) {
  return function addNumbers(num1, num2) {
    return num1 + num2;
  }
}(jQuery));

console.log(test(2,3));

直接功能是匿名的。所以,如果您想从外部访问内部函数,就必须返回值或函数

var test = (function($) {
  return function addNumbers(num1, num2) {
    return num1 + num2;
  }
}(jQuery));

console.log(test(2,3));

为什么
addNumbers()
函数在外部?您只需将
internal
函数返回到一个变量,然后在外部的任何地方使用它。有关更多详细信息,请参见答案为什么
addNumbers()
函数在外部?您只需将
内部
函数返回到变量,并在外部任何位置使用它即可。有关更多详细信息,请参阅答案。这不回答
如何使addNumbers()在该块之外调用?
部分。如果返回内部函数,则可以访问它。这就是关闭的方式work@SandeepNayak对不起,我没有看到问题的那一部分。是的,返回函数可以很好地工作。这并没有回答
如何使addNumbers()在该块之外调用?
部分。如果返回内部函数,则可以访问它。这就是关闭的方式work@SandeepNayak对不起,我没有看到问题的那一部分。是的,返回函数可以很好地工作。虽然这可以提供问题的答案,但包含某种形式的注释会很有帮助,说明解决问题的确切方法。感谢您的注释。我添加了一些关于此代码的注释。虽然这可能提供了问题的答案,但包含某种形式的注释将有助于说明解决问题的确切方法。感谢您的评论。我添加了一些关于此代码的注释。