gpt4 book ai didi

javascript - 在 .js 文件中设置变量

转载 作者:行者123 更新时间:2023-11-30 08:48:11 35 4
gpt4 key购买 nike

我在 ASP.Net MVC 中工作,我正在尝试将我所有的 jQuery 代码移动到 .js 文件中。

MVC 的一个弱点是在 .JS 文件中使用 Razor 语法。所以,我正在做这样的事情:

HTML/ Razor :

<input type="hidden" id="appointmentID" value="@(Model.Appointment.ID)" />

然后在我的 .js 中,我会:

$(document).ready(function () {
var appointmentID = $("#appointmentID").val();
});

我的问题是,每个浏览器实例是否会保留该 .js 文件的自己的版本,或者新的浏览器选项卡是否会覆盖 appointmentID 变量?

最佳答案

您似乎对文件本身和文件的执行感到困惑。该文件始终相同,但它经历的状态取决于传入的变量(在本例中为您输入的值)。文件本身并没有改变,只是代码的状态发生了变化。

在你的例子中:

$(document).ready(function () {
var appointmentID = $("#appointmentID").val(); //@(Model.Appointment.ID)
});

@(Model.Appointment.ID) 只是分配给内存中的 appointmentID 的值。这与文件中写入的内容无关...只是文件中写入的内容告诉 js 将什么放入内存。

根据您的评论更新:

熟悉 window 变量/属性。您可以通过在 js 中的任何位置执行 console.log(window) 来检查它。如果您随后创建一个全局变量,您将看到它是 window 的一个属性。我最近对此做了详细的解释here (click).基本上,无论您在 html 文档中做什么,都在窗口内。很清楚看到什么是不同的文档。不同的页面...不同的选项卡等。如果页面已加载 - 这是一个不同的文档。显然,iframe 的情况有点奇怪,因为它是文档中的文档,但适用相同的逻辑。此外,并非所有事物都必然是任何事物的“属性(property)”。仅仅因为一切都在 window 的上下文中执行并不意味着一切都是 window 的属性。这超出了您的问题范围,所以我只想说您可以研究 scope/closures/封装。

关于javascript - 在 .js 文件中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058833/

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