$('.dropdown').dropdown()调用的问题
来源:1-2 让下拉菜单开始工作
RahodJoe
2020-01-02 01:41:30
老师说为了插件定义的dropdown方法不暴露在全局变量中,使用匿名自我执行()(),那为啥在html中$(xx).dropdown可以访问到局部作用域里面的局部函数dropdown呢,有点晕了,忘记了一些基础知识
3回答
同学你好,可以参考下方理解:
1、全局变量:声明在全局的可以称为全局变量,如下:
2、局部变量:声明在函数里面的可以称为局部变量,如下:
3、全局变量在任意地方都可以读取,如下:
控制台:
4、局部变量只能在所声明的函数里面读取,函数外部不能读取,如下:
控制台:
从上方的例子中可以看出,全局变量在任意地方都可以读取,也代表着暴露到外部会比较严重。
而局部变量就会避免这种问题。
如果还有其他疑问,建议在问答区重新提问,便于后期查找总结
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕言
2020-01-02
同学你好,因为在html中引入了dropdown.js,所以在html中是可以使用的。
可以理解为:在函数自执行以外,是不能获取函数自执行里面的内容的。可以参考下方:
控制台:
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕言
2020-01-02
同学你好,在html文件中引入了dropdown.js,利用$.fn.extend() 将dropdown方法添加到jQuery的原型上。在js中不管写不写()(),在html中都是可以调用的。老师这里使用函数自执行,在函数自执行外部是不能改变或者读取函数自执行里面的代码。也就是第二个打印,是会报错的。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
相似问题