gpt4 book ai didi

javascript - 从 jQuery Document Ready 中访问变量

转载 作者:行者123 更新时间:2023-11-28 13:30:58 25 4
gpt4 key购买 nike

我有一个简单的事情是这样的:

function init() {
var $something = 'something';
}

jQuery(document).ready(function($) {
init();
alert($something);
}

我以为这会起作用,但事实并非如此,控制台说 $something 未定义。有什么问题吗?非常感谢!

最佳答案

$something 是在函数“init”的范围内定义的,因此您只能从该函数内部按原样访问它。如果你想取回一个值,你可以返回它,如下所示:

function init() {
var $something = 'something';
return $something;
}

jQuery(document).ready(function($) {
var $something = init();
alert($something);
}

请注意,这两个变量具有相同的名称(通常是个坏主意)。它们各自定义在自己的范围内,因此它们是完全不同的变量。

另一种模式可能是包装整个事物并使用该范围,如下所示:

(function () {
var $something;

function init() {
$something = 'something';
}

jQuery(document).ready(function($) {
init();
alert($something);
}
})();

这样你就有一个变量,但可以避免污染全局命名空间。

编辑:

为了回应您的评论,上面的内容可以写成:

var newscope = function () {
var $something;

function init() {
$something = 'something';
}

jQuery(document).ready(function($) {
init();
alert($something);
}
}
newscope();

但是我已经定义了该函数并基本上同时调用了它,而不必给它命名。

关于javascript - 从 jQuery Document Ready 中访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958422/

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