我有一个名为concept
的javascript对象:
function concept() {
this.ConceptId = 0;
this.Name = "";
}
我试图在jQuery document.ready
中启动它:
$(document).ready(function() {
var concept = new concept;
});
它返回错误:
未捕获的TypeError:概念不是构造函数
如果我在document.ready
内移动对象,它就可以了。
$(document).ready(function() {
function concept() {
this.ConceptId = 0;
this.Name = "";
}
var concept = new concept;
});
我仍然是javascript的新手,据我所知,document.ready在DOM完成时运行。我不明白为什么它无法访问document.ready
范围内定义的对象。
答案 0 :(得分:4)
问题是因为您正在重新定义concept
。您只需要更改变量的名称:
$(document).ready(function() {
var foo = new concept; // change the variable name here
alert(foo.ConceptId); // = 0
});
function concept() {
this.ConceptId = 0;
this.Name = "";
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:4)
试试这个:
Jsfiddle:https://jsfiddle.net/3w284mcs/
$(document).ready(function() {
var concept = function() {
this.ConceptId = 0;
this.Name = "";
}
var concept_obj = new concept();
alert(concept_obj.ConceptId);
});
答案 2 :(得分:3)
您只需要更改调用此功能的variable
名称。
<强>答案强>
$(document).ready(function() {
/*function concept() {
this.ConceptId = 0;
this.Name = "";
}*/
var concept1 = new concept;
alert(concept1.ConceptId);
});
function concept() {
this.ConceptId = 5;
this.Name = "";
}
更好的方法
您应该使用()
var objConcetp = new concept();
同时使用constructor
而不是直接分配values
。你的功能如下:
$(document).ready(function(){
var oConcept = new concept(1, "YourName");
});
function concept(conceptId, name){
this.ConceptId = conceptId;
this.Name = name;
}