Javascript令人困惑的对象功能"没有方法"错误

dan*_*ods 4 javascript function object

所以我有一个看起来像这样的函数:

function Students(){
  // Function add:
  //  Returns: add page
  this.add = function(){

  // Get template
  $.get('view/students/new.html', function(template){

    // Templating
    var html = Mustache.to_html(template);

    // When document ready, write template to page
    $('document').ready(function(){
      $('#container').html(html);
    });
  });
};

};
Run Code Online (Sandbox Code Playgroud)

当我尝试调用它的add功能时:
Students.add();

我收到错误: Uncaught TypeError: Object function Students(){...}has no method 'add'

是什么赋予了?

ick*_*fay 13

要使用该实现Students,您应该这样做:

var students = new Students();
students.add();
Run Code Online (Sandbox Code Playgroud)

但是,这可能不是你想要的.你可能想要这样定义Students:

var Students = {
    add: function() {
         $.get( /* ... */ );
    }
};
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用它:

Students.add();
Run Code Online (Sandbox Code Playgroud)