在一个a.js文件中有如下代码:(function(){var w=this;
var o=w.$mt=function(){
return o.p
};
var m=o.p={
RF:function(){
return false;
}}})();在另一个JS文件b.js文件中有如下代码:(function(){
var w=this;
m=$mt(), bEdit=0;//Visual Studio 2005说m未定义,这到底是怎么回事啊?
})();由一个HTML文件使用script标签先后导入a.js和b.js文件。
在IE中报错,使用Visual Studio 2005调试,程序停在上面的注释的地方,说m未定义,这到底是怎么回事啊?
期待高手来解决啊!!!

解决方案 »

  1.   

    Visual Studio 2005提示的内容为:
    Microsoft JScript 运行时错误: 缺少对象。
    光标停在m=$mt(),的前面。 
      

  2.   

    试了一下,没问题。检查你导入的顺序以及执行顺序吧
    <script>
    (
      function(){
        var w=this;
        var o=w.$mt=function(){
          return o.p
        };
        var m=o.p={
          RF:function(){
            return false;
          }
        }
      }
    )();(
      function(){
        var w=this;
        m=$mt(), bEdit=0;//Visual Studio 2005说m未定义,这到底是怎么回事啊?
    alert($mt);
    alert($mt());
    alert(bEdit)
      }
    )();
    </script>
      

  3.   

    a.js和b.js的执行顺序并不是按照谁先被写进HTML就谁先执行的,而是跟代码下载的先后有关,就是说谁先下载完谁先执行。解决办法:
    1.放一个文件里。
    2.代码调用放进window.onload里。