为什么在document.ready中不能声明javascript函数?
为什么不能在jQuery为什么在document.ready中不能声明javascript函数?,javascript,jquery,Javascript,Jquery,为什么不能在jQuery$(document).ready(function(){}体中声明纯JavaScript函数 这是因为.ready()已经是一个函数了吗?在纯JavaScript中,您可以有内部函数,对吗?您确实可以在ready回调函数体中定义一个函数。因此我假设您只是在访问您在其中定义的函数时遇到问题。例如: $(document).ready(function() { function test1() { console.log("test1 f
$(document).ready(function(){}
体中声明纯JavaScript函数
这是因为
.ready()
已经是一个函数了吗?在纯JavaScript中,您可以有内部函数,对吗?您确实可以在ready
回调函数体中定义一个函数。因此我假设您只是在访问您在其中定义的函数时遇到问题。例如:
$(document).ready(function()
{
function test1()
{
console.log("test1 function was called");
}
function test2()
{
console.log("test2 function was called");
}
test1(); // works
});
test2(); // does not work - Can't access the scope where test2 was defined.
当函数
是对象的属性时,它可以称为方法
就绪
是一种将函数作为参数的方法,此函数称为回调函数
,因为就绪
将在html文档完全加载后“回调”
test1
和test2
(如上)是可访问的,它们只能在传递给ready方法的回调函数中访问:因为我在该范围之外调用了test2()
,所以失败
在javascript中,调用“内部函数”(正如您所调用的)。单击该按钮可了解有关词法作用域的更多信息。加载文档后,使用ready()方法使函数可用。在$(document.ready()中编写的任何代码方法将在页面DOM准备好执行JavaScript代码后运行。确定您可以在回调正文中声明函数吗?您可以发布一个示例说明它不适用于您吗?您完全可以在document.ready中声明函数。有什么问题吗?我假设它与scope相关这不是一个好的做法。什么exactl你想做什么?@AjayKumar在回调中声明一个函数只是一个很好的实践——例如,它使事情保持非全局性one@AjayKumar确定..?声明一个函数,然后稍后调用它是非常好的。您正在实现没有声明的方法。用谷歌搜索declare和implement之间的区别。在这种情况下,它将是声明+实现。我认为在JavaScript中,你不能仅仅声明一个函数。它总是在实现。我们可以在js级别进行声明。请查看我的答案。有趣的是,他谈论的是纯JavaScript函数,所以他必须理解作用域,但我的赌注也在于作用域的一些问题