Javascript 通过$(文档)传递范围。准备好了吗
有人能给我解释一下为什么这不起作用,并告诉我如何使它起作用吗?我试图创建一个名称空间和IIFEs函数,但似乎无法实现Javascript 通过$(文档)传递范围。准备好了吗,javascript,jquery,html,Javascript,Jquery,Html,有人能给我解释一下为什么这不起作用,并告诉我如何使它起作用吗?我试图创建一个名称空间和IIFEs函数,但似乎无法实现 $(document).ready(function() { alert (hi); }); $(document).ready(function() { var hi = "hello" }); 谢谢大家! 执行此操作时: $(document).ready(function() { var hi = "hello" }); 您正在创建一个名为hi的变量,该变
$(document).ready(function() {
alert (hi);
});
$(document).ready(function() {
var hi = "hello"
});
谢谢大家! 执行此操作时:
$(document).ready(function() {
var hi = "hello"
});
您正在创建一个名为hi
的变量,该变量是该回调函数的本地变量。在该功能之外,它根本无法访问。这是该语言的一个特点
您可以在更高的范围内声明变量,如下所示:
var hi;
$(document).ready(function() {
hi = "hello"
});
然后,该变量的值将在范围外可用,但您不一定知道它何时获得正确的值,因为您不知道何时调用$(document).ready()
回调,除非您将代码放入该回调中
尝试在对
$(document.ready()
的两次调用之间共享一个变量是毫无意义的。将代码放在相同的$(document.ready()
回调中会更有意义:
$(document).ready(function() {
var hi = "hello"
alert (hi);
});
不太推荐 如果您要尝试在两次调用
$(document).ready()
(我不建议这样做,因为这会使代码变得有些脆弱),那么可以这样做。对$(document).ready()
的回调将按其附加的顺序调用,因此您必须正确地排序:
var hi;
$(document).ready(function() {
hi = "hello"
});
$(document).ready(function() {
alert (hi);
});
这将确保设置hi
值的第一个$(document).ready()
回调将在尝试使用该值的第二个回调之前首先调用。执行此操作时:
$(document).ready(function() {
var hi = "hello"
});
您正在创建一个名为hi
的变量,该变量是该回调函数的本地变量。在该功能之外,它根本无法访问。这是该语言的一个特点
您可以在更高的范围内声明变量,如下所示:
var hi;
$(document).ready(function() {
hi = "hello"
});
然后,该变量的值将在范围外可用,但您不一定知道它何时获得正确的值,因为您不知道何时调用$(document).ready()
回调,除非您将代码放入该回调中
尝试在对
$(document.ready()
的两次调用之间共享一个变量是毫无意义的。将代码放在相同的$(document.ready()
回调中会更有意义:
$(document).ready(function() {
var hi = "hello"
alert (hi);
});
不太推荐 如果您要尝试在两次调用
$(document).ready()
(我不建议这样做,因为这会使代码变得有些脆弱),那么可以这样做。对$(document).ready()
的回调将按其附加的顺序调用,因此您必须正确地排序:
var hi;
$(document).ready(function() {
hi = "hello"
});
$(document).ready(function() {
alert (hi);
});
这将确保设置hi
值的第一个$(document).ready()
回调将在尝试使用该值的第二个回调之前首先调用