jquery嵌套函数访问

时间:2015-09-24 11:19:39

标签: javascript jquery object

如何在onclick中访问test2()函数,如普通函数所示,用括号括起来告诉运行时将函数返回到父作用域,一旦它返回函数是使用第4行执行,也许阅读这些步骤将有所帮助。

<p onclick='test().test2()'> some text </p>; 

<script>

  //the below declaration will not change 
  var jQuery = 'Hi';
  (function ($) { 
    function test(){
      function test2(){
        alert('text')
      }
      alert($)
    } 
    console.log($);
    test().test2()
  })(jQuery)

</script>

2 个答案:

答案 0 :(得分:0)

如果您在与您希望访问该功能的范围相同的范围内声明该功能,则只能访问test2。在这种情况下,它意味着您需要在外部作用域中声明该函数。

您可以通过在外部作用域中设置变量来实现,如下所示:

var test2;
 var jQuery = 'Hi';
  (function ($) { 
    function test(){
      test2 = function(){
        alert('text')
      }
      alert($)
    } 
    console.log($);
    test(); //test needs to be called first to define test2.
    test2();
  })(jQuery)

答案 1 :(得分:0)

我检了两次,这有效:

    var jQuery = 'Hi';
    window.test = (function ($) {
        function test(){
            this.test2 = function () {
                alert('text')
            };
            alert($);
            return this;
        }
        console.log($);
        test().test2();

        return test;
    })(jQuery);