在jquery插件中我们经常看到以下这段代码
;(function ( $, window, document, undefined ){ //函数体内具体代码 })(jQuery, window,document);
1、代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后的语法错误。
2、匿名函数(function(){})();:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。避免函数体内和外部的变量冲突。
3、$实参:$是jquery的简写,很多方法和类库也使用$,这里$接受jQuery对象,也是为了避免$变量冲突,保证插件可以正常运行。
4、window, document实参分别接受window, document对象,window, document对象都是全局环境下的,而在函数体内的window, document其实是局部变量,不是全局的window, document对象。这样做有个好处就是可以提高性能,减少作用域链的查询时间,如果你在函数体内需要多次调用window 或 document对象,这样把window 或 document对象当作参数传进去,这样做是非常有必要的。当然如果你的插件用不到这两个对象,那么就不用传递这两个参数了。
5、最后剩下一个undefined形参了,那么这个形参是干什么用的呢,看起来是有点多余。undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
问题内容: 摘要 您能解释JavaScript中封装的匿名函数的语法背后的原因吗?为什么起作用:但这不起作用? 我知道的 在JavaScript中,将创建一个命名函数,如下所示: 您还可以创建一个匿名函数并将其分配给变量: 您可以通过创建一个匿名函数来封装代码块,然后将其包装在方括号中并立即执行: 在创建模块化脚本时,这很有用,以避免因潜在冲突的变量而使当前范围或全局范围混乱(例如Greasemo
本文向大家介绍使用匿名函数的JavaScript封装,包括了使用匿名函数的JavaScript封装的使用技巧和注意事项,需要的朋友参考一下 面向对象的编程语言允许使用私有字段隐藏数据。他们使用这些来隐藏类的内部。在JS中,没有这样的构建支持来隐藏/封装内部工作。 我们有Anonymous函数,可以为您封装JS。让我们看一个例子- 示例 如果我们将上面的代码公开地写出来,则此代码将使用这些名称污染全
主要内容:形参和实参的区别和联系如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。 这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值。 C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来
本文向大家介绍Jquery的autocomplete插件用法及参数讲解,包括了Jquery的autocomplete插件用法及参数讲解的使用技巧和注意事项,需要的朋友参考一下 参数说明: * minChars (Number): 在触发autoComplete前用户至少需要输入的字符数.Default: 1,如果设为0,在输入框内双击或者删除输入框内内容时显示列表 * width (Number)
本文向大家介绍说下你对函数的形参与实参的理解相关面试题,主要包含被问及说下你对函数的形参与实参的理解时的应答技巧和注意事项,需要的朋友参考一下 在以上代码中a,b就是形参,1和2就是实参
3. 形参和实参 下面我们定义一个带参数的函数,我们需要在函数定义中指明参数的个数和每个参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,参数的命名也要遵循标识符命名规则。例如: 例 3.4. 带参数的自定义函数 #include <stdio.h> void print_time(int hour, int minute) { printf("%d:%d\n", hour, mi