我有一个名为 concept 的 javascript 对象:

function concept() {
    this.ConceptId = 0;
    this.Name = "";
}

我试图在 jQuery document.ready 中启动它:
$(document).ready(function() {
    var concept = new concept;
});

它返回一个错误:



如果我在 document.ready 内移动对象,它就可以工作。
$(document).ready(function() {
    function concept() {
        this.ConceptId = 0;
        this.Name = "";
    }
    var concept = new concept;
});

我还是 javascript 新手,据我所知 document.ready 在 DOM 完成时运行。我不明白为什么它不能访问在 document.ready 范围之外定义的对象。

这是 fiddle :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>

10-07 17:37