JavaScript调用函数和作用域

JavaScript调用函数和作用域,javascript,jquery,function,events,scope,Javascript,Jquery,Function,Events,Scope,我最近询问了关于函数级范围和块级范围之间的区别。答案很全面,帮助我理解了功能级别的范围,并介绍了吊装概念 现在我有另一个考虑。示例是jQuery.ready()函数和其中声明的事件处理程序。也就是说,为什么在.click()事件处理程序中声明的变量没有被提升到.ready()函数?这是因为.click()不是.ready()函数的属性吗?而.click()中声明的变量仅被提升到该函数 例如: $(‘document’).ready(function(){ $(‘selector’).cl

我最近询问了关于函数级范围和块级范围之间的区别。答案很全面,帮助我理解了功能级别的范围,并介绍了吊装概念

现在我有另一个考虑。示例是jQuery
.ready()
函数和其中声明的事件处理程序。也就是说,为什么在
.click()
事件处理程序中声明的变量没有被提升到
.ready()
函数?这是因为
.click()
不是
.ready()
函数的属性吗?而
.click()
中声明的变量仅被提升到该函数

例如:

$(‘document’).ready(function(){
    $(‘selector’).click(function(){
        var x = 10; //discussed variable
    });
});
我试着自己教JS脚本,但这个概念对我来说真的很难理解。请有人用一个简单的例子解释一下,或者提供相关的链接


谢谢
。click
事件处理程序是一个匿名函数,因此与任何其他函数一样,它也有自己的作用域。其中声明的变量保持在该范围内


提升仅适用于函数内-变量不会泄漏到封闭范围内。如果他们这样做了,那么函数作用域将是无用的。

单击事件处理程序是一个匿名函数,因此与任何其他函数一样,它也有自己的作用域。其中声明的变量保持在该范围内


提升仅适用于函数内-变量不会泄漏到封闭范围内。如果他们这样做了,那么函数作用域将是无用的…

FYI,使用
$(文档)
而不是
$('document')
FYI,使用
$(文档)
而不是
$('document')
好吧,我想我已经知道了,我把循环块或If语句块混淆了,在前面的问题中用作了一个例子。谢谢。@Dimt是的,不幸的是,您被其他问题的已接受答案上的一条注释误导了-内部函数中声明的变量在封闭函数中不可访问。尽管答案很好,但我误解了它。再次感谢。好的,我想我明白了,我把循环块或if语句块弄糊涂了,在前面的问题中,它被用作示例。谢谢。@Dimt是的,不幸的是,您被其他问题的已接受答案上的一条注释误导了-内部函数中声明的变量在封闭函数中不可访问。尽管答案很好,但我误解了它。再次感谢。