代码之家  ›  专栏  ›  技术社区  ›  Prabhu

我的javascript格式有问题吗?

  •  0
  • Prabhu  · 技术社区  · 14 年前

    我在一个.NETMVC2项目中,有一个SomeClass.Home.js以及母版页中的jQuery。我的SomeClass.Home.js看起来像这样:

    SomeClass.Home = {};
    
    $(document).ready(function () {
        SomeClass.Home.SomeMethod();    
    });
    
    SomeClass.Home.SomeMethod= function () {
        alert("hello");
    };
    

    呼叫 SomeClass.Home.SomeMethod 不起作用(我没有收到警报)。但是,如果我把它改成这个,它就工作了,我会得到警报:

    $(document).ready(function () {
        SomeMethod();    
    });
    
    function SomeMethod () {
        alert("hello");
    };
    

    3 回复  |  直到 4 年前
        1
  •  2
  •   calvinf    14 年前

    问题似乎出在您描述SomeClass变量的方式上。下面的代码适用于我。

    var SomeClass = {};
    SomeClass.Home = {};
    SomeClass.Home.SomeMethod = function() {
      alert("hello");
    };
    
    $(document).ready(function () {
        SomeClass.Home.SomeMethod();    
    });
    
        2
  •  1
  •   Jason    14 年前

    是的,因为您没有声明方法。我相信你应该这样做:

    SomeClass.Home = {
       SomeMethod = function(){ //stuff });
    }
    
    $(function(){ SomeClass.Home.SomeMethod() });
    
        3
  •  1
  •   J J    14 年前

    如果在类中嵌入函数呢?

    SomeClass.Home = {
      SomeMethod= function () {
        alert("hello");
      };
    };
    
    $(document).ready(function () {
        SomeClass.Home.SomeMethod();    
    });
    
    SomeClass.Home.SomeMethod= function () {
        alert("hello");
    };