JavaScript 高级语法(function(){})() 语法介绍

news/2024/7/10 23:37:59 标签: javascript, function, jquery

JavaScript 高级语法介绍

发布:dxy 字体:[ 增加  减小] 类型:转载
前几天一个同事问我如下的JavaScript代码如何理解

(function($){})(jQuery);

其实比较简单,要理解几个概念:

1、(),在JavaScript里()表示执行一个方法,如:

function x(){

alert("xxx");

}

var a = x; // 没有调用,a 是一个function

var a = x(); //调用了函数,a 的值是调用的结果:undefined

2、jQuery是一个jQuery对象,表示调用函数时,传入一个参数是jQuery对象。

这个没什么好说的

3、(function($){})这是一个匿名函数,形参是$,括号是一定需要的。

这样一看就懂了,上式相当于

var f = function($){};

f(jQuery);

   什么函数定义部分加个"()"?

             其实这个"()"没有特殊含义,只是把函数对象作为一个整体。
                如果不加"()"那么 就是"function(){return 1}()"这明显是一个语法错误。


另外函数这么定义的原因就是为了封闭作用域而不至于污染其他文件。





http://www.niftyadmin.cn/n/739474.html

相关文章

状态模式学习笔记 --有限状态机的实现

有限状态自动机的实现方式1、使用switch/case模式,每个case表示一个状态,而在case的处理里面进行状态转换。如:switch(state){case LOCKED:switch(event){case COIN:state UNLOCK;dounlocked event...break;case PASS:....}case UNLOCK:....…

Javascript作用域的问题

Javascript作用域的问题 发布:dxy 字体:[增加 减小] 类型:转载在说这个话题之前,我想先说几句题外话:最近偶然碰到有朋友问我“hoisting”的问题。即在js里所有变量的声明都是置顶的,而赋值则是在之后发生的…

javascript对象和c++对象的区别-----坑爹的js,痛苦的语法特性,使用方法

Javascript是“基于对象”的语言,因为其函数就是对象,而不是面向对象的语言,因为他不支持多态等东西。作为一个从C转换到js的程序员,对于js的各种作用域、类的声明方式等不安情理出牌,我感觉很不习惯,很痛苦…

覆盖索引--- 一次神奇的MySQL优化 ---select * 效率查的原因

一次神奇的MySQL优化 转载自: http://xiaobin.net/201109/strange-sql-performance-problem/ 话说有这么一个表: CREATE TABLE user_group (id int(11) NOT NULL auto_increment,uid int(11) NOT NULL,group_id int(11) NOT NULL,PRIMARY KEY (id),K…

MySQL之Covering Index

2009年01月12日 星期一 下午 08:35作者:老王在网上随便搜搜,就能找到大把的关于MySQL优化的文章,不过里面很多都不准确,说个常见的:SELECT a FROM ... WHERE b ...一般来说,很多文章会告诫你类似这样的查询…

MySQL索引 使用笔记

MySQL索引 使用笔记 转载自: http://www.perfgeeks.com/?p460我们平常所说的索引,如果没有特别指明,都是指B树结构组织的B-Tree索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引&#…

人人都能做的性能优化 web前端优化

人人都能做的性能优化 web前端优化 http://www.perfgeeks.com/?p253Web优化已经越趋成熟,不再那么扑朔迷离。在这里,我们跟据一些优化实践准则应用于perfgeeks,并进行了记录。Pefgeeks的系统软环境是CentOS5.3 Apache2.2.3 Wordpress2.9。…

MySQL Query Profiler的使用方法

MySQL 5.0.37版本加入了MySQL Query Profiler工具。 http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html 简单的实例 mysql> set profiling1; Query OK, 0 rows affected (0.04 sec) mysql> show profiles; Empty set (0.00 sec) mysql> S…