是否可以在立即调用的函数表达式中调用JavaScript函数? [英] Is It Possible To Call A JavaScript Function Inside An Immediately-Invoked Function Expression

查看:113
本文介绍了是否可以在立即调用的函数表达式中调用JavaScript函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <脚本

我使用jQuery并在函数表达式中包含一个函数,如下所示: type =text / javascriptsrc =jquery-1.8.3.min.js>< / script>
< script type =text / javascript>
(函数($){

var message ='x called';

函数x(){
alert(message);
}
})(jQuery);

x();
< / script>

这会导致错误,因为函数x没有在直接调用的函数之外定义表达。有没有办法在立即调用的函数表达式之外调用函数x?解析方案

为其他类创建一个名称空间或者你可能想要做的功能。你不想不断地污染全局命名空间,但没有理由不能让一个命名空间成为全局命名空间,并将你的个人事物放在其下面:

 (function($){
window.MyNamespace = function(){};
var message =Something here;

$ .extend MyNamespace,{
x:function(){
alert(message);
}
});
})(jQuery)

MyNamespace.x()


I'm using jQuery and have a function wrapped inside an immediately-invoked function expression like so:

<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
    (function ($) {

        var message = 'x called';

        function x() {
            alert(message);
        }
    })(jQuery);

    x();
</script>

This will result is an error since the function "x" is not defined outside the immediately-invoked function expression. Is there any way to call the function "x" outside the immediately-invoked function expression?

解决方案

Make a namespace for other classes or functions you might want to do this with. You don't want to continually pollute the global namespace but there's no reason you can't make one namespace that's global and put your individual things underneath that:

(function($){
  window.MyNamespace = function(){};
  var message = "Something here";

  $.extend(MyNamespace, {
    x: function(){
      alert(message);
    }
  });
})(jQuery)

MyNamespace.x()

这篇关于是否可以在立即调用的函数表达式中调用JavaScript函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆