[英]Cannot init an object in jquery document.ready
我有一個名為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
范圍中定義的對象。
這是小提琴: https : //jsfiddle.net/49rkcaud/1/
問題是因為你正在重新定義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>
嘗試這個:
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);
});
您只需要在調用此函數的位置更改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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.