javascript - 无法在 jquery document.ready 中初始化对象

标签 javascript jquery

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

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

我正在尝试在 jQuery document.ready 中启动它:

$(document).ready(function() {
    var concept = new concept;
});

它返回一个错误:

Uncaught TypeError: concept is not a constructor

如果我将对象移动到 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/

最佳答案

问题是因为您正在重新定义概念。您只需要更改变量的名称:

$(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>

关于javascript - 无法在 jquery document.ready 中初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208790/

相关文章:

javascript - 防止箭头键更改数字输入中的值

javascript - 链函数的基本查询

javascript - 单击按钮时设置 JCrop 的宽高比?

javascript - 如何使用新的图标更改我的网站图标

javascript - 如何在单击事件中查找 jQuery 中的上一个元素?

javascript - 使用 Jasmine 进行单元测试时,javascript 的揭示模块模式有哪些缺点?

jquery - 获取密码字段的掩码值?

javascript - 谷歌地图(它没有将结果显示到我的输入 Pane 中以保存到我的数据库中)

javascript - 单击/取消单击按钮时更改图像

javascript - 可编辑工具提示的弹出窗口