gpt4 book ai didi

javascript - 为什么我会得到这个 JavaScript ReferenceError

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:27 25 4
gpt4 key购买 nike

哪里做错了。我尝试制作对象,但当我尝试初始化时,我在控制台中收到此错误:我尝试将所有内容放入 document.ready 中,但没有成功。在这两种情况下,我都有一些错误。我是新来的,很抱歉提出愚蠢的问题

ReferenceError: Circle is not defined
var obj = new Circle;

JS

$(function(){
var Circle = {

init: function() {
console.log("Circle initialized");
}
};

});

HTML

<!DOCTYPE html>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="javascript/circle.js"></script>

<script>

$(document).ready(function(){
var obj = new Circle;

obj.init();
})

</script>

</head>
<body>
<div id="test" >TODO write content</div>
</body>
</html>

新更新

$(function(){

window.Circle = {

init: function() {
console.log("Circle initialized");
}
};
window.Circle.init();
});

....

  <head>

<script>

window.Circle().init();

</script>

</head>

最佳答案

您已经在另一个函数内部定义了“Circle”函数——您作为“就绪”处理程序传入的匿名函数。因此,该符号(“Circle”)对该函数是私有(private)的,对其他代码不可见。

你可以像这样让它成为全局的:

window.Circle = {
// ...
};

您还可以将它添加到 jQuery namespace (可能合适也可能不合适;取决于您在做什么),或者您可以为您的应用程序代码开发自己的 namespace 。或者,最后,您可以考虑组合您的 jQuery“就绪”代码,以便“Circle”对象和使用它的代码都出现在同一个处理程序中。

编辑另一种 可能性是将“Circle”声明完全移出“ready”处理程序。如果您所做的只是初始化该对象,并且您的属性值不需要任何需要 DOM 或其他尚不可用资源的工作,那么您可以摆脱 $(function() { .. . }) 包装器。

关于javascript - 为什么我会得到这个 JavaScript ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18162721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com