【问题标题】:Can't access jQuery DOM ready scope for debugging无法访问 jQuery DOM 就绪范围进行调试
【发布时间】:2012-02-09 09:55:08
【问题描述】:
$(function(){ var my_value = 'text1'})

但在控制台(我使用的 Safari 控制台)中,我不知道如何访问 my_value 变量,因为它是 function(){} 范围内的局部变量。

有任何解决方法或更好的解决方案吗?

【问题讨论】:

    标签: javascript scope


    【解决方案1】:

    你需要断点那行 javascript。当您越过那条线时,您应该能够愉快地检查该值。

    【讨论】:

      【解决方案2】:

      展开您的代码块,以便您可以在特定行上设置断点。也可以使用关键字debugger; 显式设置断点:

      $(function(){
          debugger;
          var my_value = 'text1';
      })
      

      【讨论】:

        【解决方案3】:

        有多种方法,您可以在 javascript 代码中添加断点,也可以在控制台中定义一个本地监视变量,以显示您定义的变量的值。

        【讨论】:

          【解决方案4】:

          您可以将数据和函数作为对象传递给window,如下所示:

          (function(global){
            $(document).ready(function(){
              var my_value = 'text1',
                  aPublicFunction = function(){
                    // blah blah
                  },
                  aPrivateFunction = function(){
                    // blah blah
                  };
          
              // prepare what you want window to see.
              global.publicAPI = {
                my_value: my_value,
                aFunction: aFunction
              }
            });
          })(window);
          
          publicAPI.my_value;
          // 'text1'
          
          publicAPI.aPrivateFunction();
          // no can do!
          

          【讨论】:

            【解决方案5】:

            正如其他人建议的那样,使用调试器。

            对于 Safari(和 Chrome),请查看 Apple's docs,如果您使用的是 Firefox,请查看 Firebug

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-12-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-01-30
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多