javascript不是构造函数
我试图创建一个Javascript对象,但它给出了一个致命的错误,即不是构造函数对象。代码中有什么错误javascript不是构造函数,javascript,oop,require,Javascript,Oop,Require,我试图创建一个Javascript对象,但它给出了一个致命的错误,即不是构造函数对象。代码中有什么错误 form = new Form(data,option); str = form.JsonToHTML(); 下面是方法 define([ 'jquery', 'underscore', 'backbone', 'router/router' ], function($, _, Backbone, Router) { var form = function(da
form = new Form(data,option);
str = form.JsonToHTML();
下面是方法
define([
'jquery',
'underscore',
'backbone',
'router/router'
], function($, _, Backbone, Router) {
var form = function(data, options) {
this.data = data;
this.options = options,
this.JsonToHtml = function() {
alert(Backbone);
alert(this.data);
}
};
return form;
});
您还没有定义一个名为Form的函数,但是您可以通过创建一个空对象并使用
call
方法调用表单函数来模拟它
即
您还没有定义一个名为Form的函数,但是您可以通过创建一个空对象并使用
call
方法调用表单函数来模拟它
即
您似乎没有正确加载
表单
模块。您应该像这样加载它:
define(['form'], function(Form) {
var form = new Form(data,option);
var str = form.JsonToHTML();
//your code
});
define([
'jquery',
'underscore',
'backbone',
'router/router'
],
function($, _, Backbone, Router) {
function Form(data, options) {
this.data = data;
this.options = options;
}
Form.prototype.jsonToHtml = function() {
alert(Backbone);
alert(this.data);
}
return Form;
});
您正在使用的表单
模块是一个。这些工作方式是创建一个局部变量(函数参数)来引用代码所依赖的每个模块。在本例中,您希望将表单构造函数称为form
,以便newform
可以工作,这就是我在上面的示例中调用函数参数form
的原因
我不确定form
模块是您编写的还是其他人编写的,但是如果您可以更改它,那么最好将函数重命名为form
(带大写字母F),以保持一致性,因为在JS中,构造函数函数以大写字母开头是一个标准约定
我建议像这样编写表单
模块:
define(['form'], function(Form) {
var form = new Form(data,option);
var str = form.JsonToHTML();
//your code
});
define([
'jquery',
'underscore',
'backbone',
'router/router'
],
function($, _, Backbone, Router) {
function Form(data, options) {
this.data = data;
this.options = options;
}
Form.prototype.jsonToHtml = function() {
alert(Backbone);
alert(this.data);
}
return Form;
});
您似乎没有正确加载
表单
模块。您应该像这样加载它:
define(['form'], function(Form) {
var form = new Form(data,option);
var str = form.JsonToHTML();
//your code
});
define([
'jquery',
'underscore',
'backbone',
'router/router'
],
function($, _, Backbone, Router) {
function Form(data, options) {
this.data = data;
this.options = options;
}
Form.prototype.jsonToHtml = function() {
alert(Backbone);
alert(this.data);
}
return Form;
});
您正在使用的表单
模块是一个。这些工作方式是创建一个局部变量(函数参数)来引用代码所依赖的每个模块。在本例中,您希望将表单构造函数称为form
,以便newform
可以工作,这就是我在上面的示例中调用函数参数form
的原因
我不确定form
模块是您编写的还是其他人编写的,但是如果您可以更改它,那么最好将函数重命名为form
(带大写字母F),以保持一致性,因为在JS中,构造函数函数以大写字母开头是一个标准约定
我建议像这样编写表单
模块:
define(['form'], function(Form) {
var form = new Form(data,option);
var str = form.JsonToHTML();
//your code
});
define([
'jquery',
'underscore',
'backbone',
'router/router'
],
function($, _, Backbone, Router) {
function Form(data, options) {
this.data = data;
this.options = options;
}
Form.prototype.jsonToHtml = function() {
alert(Backbone);
alert(this.data);
}
return Form;
});
表单
未定义。我认为您可能复制了一些代码。例如,看起来您有一个额外的})代码>在代码末尾,由于其他人的麻烦,您遇到了一些麻烦!!从你粘贴的地方查看:)谢谢。调用该方法时出现问题。它工作正常表单
未定义。我认为您可能复制了一些代码。例如,看起来您有一个额外的})代码>在代码末尾,由于其他人的麻烦,您遇到了一些麻烦!!从你粘贴的地方查看:)谢谢。调用该方法时出现问题。它工作得很好实际上这里有一个表单构造函数(在AMD模块中),它只是没有正确加载。实际上这里有一个表单构造函数(在AMD模块中),它只是没有正确加载。谢谢。我按照你的建议调用时出错了。它工作得很好,我发布了我将如何编写它……使用原型是没有必要的,但它是JS中面向对象的标准方法(而且内存效率略高)。请注意,一般来说,原型应该只包含方法,而不包含属性(因为您希望所有实例共享方法,但每个实例都有不同的属性值)。我在做这件事的时候还注意到了一个打字错误……你在一个地方用了逗号而不是分号;也许那是你的主要问题。如果你觉得这个答案有帮助,请在有机会时将其标记为已接受的答案;谢谢,谢谢。我按照你的建议调用时出错了。它工作得很好,我发布了我将如何编写它……使用原型是没有必要的,但它是JS中面向对象的标准方法(而且内存效率略高)。请注意,一般来说,原型应该只包含方法,而不包含属性(因为您希望所有实例共享方法,但每个实例都有不同的属性值)。我在做这件事的时候还注意到了一个打字错误……你在一个地方用了逗号而不是分号;也许那是你的主要问题。如果你觉得这个答案有帮助,请在有机会时将其标记为已接受的答案;谢谢