gpt4 book ai didi

javascript - 对象未定义或为空

转载 作者:行者123 更新时间:2023-11-28 13:43:56 26 4
gpt4 key购买 nike

我编写了一个名为 global.js 的 JavaScript 文件,其中包含以下内容:

;

var Globals =
{
function getAppRoot() {
if (typeof (jQuery) !== "undefined")
return $("#ApplicationRoot").attr("href");
};

appRoot : getAppRoot();
};

然后在我的 HTML 文件(ASP.NET MVC 项目)中,我包含了我的 JavaScript 文件,如下所示:

<link rel = "home" id = "ApplicationRoot" 
href = "@Url.Content("~/")" />

<script src = "@Url.Content("~/Scripts/jquery-1.8.3.js")"
type="text/javascript"></script>

<script src = "@Url.Content("~/Scripts/global.js")"
type = "text/javascript"></script>

然后,在 HTML 文件的 SCRIPT 标记内,我写入:

$(document).ready( 
function() {
alert("Globals.appRoot = " + window.Globals.appRoot);
} );

但是,当我运行代码时,它告诉我 Globals 未定义。

更新谢谢你们。我刚刚注意到我忘记了等号(赋值运算符)。

我现在观察到的另一件重要的事情(我并不完全确定)是:我从您的评论中假设对象声明如下:

var foo = { /* cannot have anything that does not adhere to the bar : gar syntax? */ }

另一个更新问题是:如果我通过这样做使 appRoot 成为一个方法:

var Globals = 
{
appRoot : function() { }
};

或者像这样:

var Globals = 
{
appRoot : function getAppRoot() { }
}

客户端必须使用一组以下括号调用appRoot。我希望 appRoot 成为一个属性而不是一个方法。我该怎么做?

最终更新我现在已将代码更改为如下:

// globals.js
// I understand that the starting semi-colon is not
// required. I'd left it in for reasons that it is used
var Globals =
{
appRoot : $("#ApplicationRoot").attr("href");
};


// inside the HTML file in $(document).ready();

if (tyepof(Globals) == "undefined" || Globals == null)
alert("Globals is either undefined or null");
else
alert("Globals.appRoot = " + Globals.appRoot);

我收到警报消息全局未定义或为空

回答好吧,终于。感谢你的帮助。我在 Globals 对象的对象声明/初始化中遇到了另一个小语法错误。

由于 appRoot 是对象的成员,并且我使用的是对象初始值设定项语法,因此我不应该用分号终止 appRoot 的声明。相反,我应该使用逗号,或者只保留它而不使用任何终止字符,因为它是最后一个(也是 Globals 的唯一成员)。

最佳答案

你需要重写你的 globals.js,像这样的东西应该可以工作:

var Globals = {
appRoot : function() {
if (typeof (jQuery) !== "undefined") {
return $("#ApplicationRoot").attr("href");
}
}
};

关于javascript - 对象未定义或为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881202/

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