Javascript混淆对象函数“;“没有办法”;错误
我有一个函数,看起来像这样:Javascript混淆对象函数“;“没有办法”;错误,javascript,function,object,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); // Whe
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);
});
});
};
};
var Students = {
add: function() {
$.get( /* ... */ );
}
};
Students.add();
当我尝试调用它的add
函数时,如下所示:Students.add()代码>
我得到一个错误:
uncaughttypeerror:对象函数Students(){…}没有方法“add”
提供了什么?要使用学生的实现,您应该执行以下操作:
var students = new Students();
students.add();
然而,这可能不是你想要的。您可能打算这样定义学生
:
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);
});
});
};
};
var Students = {
add: function() {
$.get( /* ... */ );
}
};
Students.add();
然后你可以这样称呼它:
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);
});
});
};
};
var Students = {
add: function() {
$.get( /* ... */ );
}
};
Students.add();
您没有使用该代码将“add”函数添加到“Students”函数中;您正在将其添加到使用“学生”作为构造函数创建的实例中
var student = new Students();
student.add(); // won't get the error
学生被称为构造器
var s = new Students();
s.add()
在Students
内部,这将是一个从Students的prorotype继承的新对象,并自动返回。这么说
this.add = function() ....
正在将add
函数添加到此返回的对象上。但是每次调用该函数时,都会从头创建该函数。为什么不将其添加到原型中,这样该函数只存在一次,而不必每次都重新创建
Students.prototype.add = function(){
嗯,学生
没有添加
方法
我想你是在假设你知道这是如何工作的。它不是对函数的引用,除非您手动这样做。此
的值将完全取决于您如何调用学生