Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在document.ready中不能声明javascript函数?_Javascript_Jquery - Fatal编程技术网

为什么在document.ready中不能声明javascript函数?

为什么在document.ready中不能声明javascript函数?,javascript,jquery,Javascript,Jquery,为什么不能在jQuery$(document).ready(function(){}体中声明纯JavaScript函数 这是因为.ready()已经是一个函数了吗?在纯JavaScript中,您可以有内部函数,对吗?您确实可以在ready回调函数体中定义一个函数。因此我假设您只是在访问您在其中定义的函数时遇到问题。例如: $(document).ready(function() { function test1() { console.log("test1 f

为什么不能在jQuery
$(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函数,所以他必须理解作用域,但我的赌注也在于作用域的一些问题