原文地址:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html【侵删】

在javascript中函数的申明方式有四种 下面代码中一句代表了一种

1 function func1(…){…} 
2 var func2=function(…){…}; 
3 var func3=function func4(…){…}; 
4 var func5=new Function();

第一种就是我们常见的函数申明方式,函数名为func1。第二种和第三种的区别是第二种是匿名函数,而第三种不是。第四种用的是对象申明的方式,因为javascript每个函数就是一个对象。

1 //这两种声明是等价的
2  function func1(a,b){
3   return a+b;
4 }
5 var func1 = new Function("a","b","return a+b");

匿名函数和有名字函数在javascript中是有点区别的我们看代码

1  //声明一个匿名函数
2  func1();
3 var func1 = function(){
4      alter(1);
5 }

运行火狐
firbug中说func1未定义
看看另外一种方式

1 func1();
2 function func1(){
3   alert(1);
4 }

由此可见,尽管JavaScript是一门解释型的语言,但它会在进行函数调用时,检查整个
代码中是否存在相应的函数定义,这个函数名只有是通过 function funcName()形式定义的才有效,而不能是匿名函数。

匿名函数的申名方式有个好处就是防止函数重命名。在javascript还有匿名函数可以在申明之后立即调用,代码如下。

1 var i=function(a,b){
2     return a+b;
3 }(1,2);

这里i=3是返回值而不是函数,这是因为()的优先级比=高
在jquery中的插件扩展就是这样实现的,我们来看看代码。


 1 (function($){
 2  
 3 $.fn.select = function(select) {
 4     if (select == undefined) select = true;
 5     return this.each(function() { 
 6         var t = this.type;
 7         if (t == 'checkbox' || t == 'radio')
 8             this.checked = select;
 9         else if (this.tagName.toLowerCase() == 'option') {
10             var $sel = $(this).parent('select');
11             if (select && $sel[0] && $sel[0].type == 'select-one') {
12                 // deselect all other options
13                 $sel.find('option').select(false);
14             }
15             this.selected = select;
16         }
17     });
18 };
19  
20 })(jquery)

注意直接这样写
function(a,b){
return a+b;
}(1,2)
是会报语法错误的。

【转载】javascript中的函数对象的更多相关文章

  1. (转载)JavaScript中匿名函数,函数直接量和闭包

    首先,我们先看看下面几种写法:1.function f(x){return x*x;};f(x);2.(function(x){return x*x;})(x);3.(function(x){retu ...

  2. Javascript中的函数(三)

    一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质 ...

  3. Javascript中的函数(Function)与对象(Object)的关系

    今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一 ...

  4. JavaScript中Function函数与Object对象的关系

    函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object.Array.Date.RegExp.Math.Error.这些名称实际上表示一个 类型,可以通过new操作符返回一个对 ...

  5. java基础62 JavaScript中的函数(网页知识)

    1.JavaScript中,函数的格式 function 函数名(形参列表){ 函数体; } 2.JavaScript中,函数需要注意的细节 1.在javaScript中,函数定义形参时,是不能使用v ...

  6. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  7. JavaScript中的函数表达式

    在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表 ...

  8. JavaScript中的事件对象

    JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...

  9. JavaScript中Eval()函数的作用

    这一周感觉没什么写的,不过在研究dwz源码的时候有一个eval()的方法不是很了解,分享出来一起学习 -->首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. ...

随机推荐

  1. 网页尺寸scrollHeight/offsetHeight

    scrollHeight和scrollWidth,获取网页内容高度和宽度. 一.针对IE.Opera: scrollHeight 是网页内容实际高度,可以小于 clientHeight. 二.针对NS ...

  2. ES6学习笔记(10)----Set和Map数据结构

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ Set和Map数据结构 1.Set  基本用法    Set是一种新的数据结构,它的成员都是唯一 ...

  3. DMA简介

    直接存储器访问 直接存储器访问(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术.它可以让外设可以独立地直接读写系统存储器,而不需绕道中央处理器(CPU),DMA是一 ...

  4. cnbeta新闻资讯第三方客户端应用

    该源码案例是一个cnbeta第三方客户端应用案例,作者ywwxhz,源码cnBeta-reader,cnbeta 的 Android 客户端项目. 源码下载: http://code.662p.com ...

  5. 【C++】cerr,cout,clog

    http://stackoverflow.com/questions/16772842/what-is-the-difference-between-cout-cerr-clog-of-iostrea ...

  6. 写的一个HttpClient类

    package com.ca.test.cainterface.common.util.http; import com.ca.test.cainterface.common.util.data.Da ...

  7. Python3简明教程(四)—— 流程控制之分支

    我们通过 if-else 语句来做决定,来改变程序运行的流程. if语句 语法如下: if expression: do this 如果表达式 expression 的值为真(不为零的任何值都为真), ...

  8. faster rcnn的改进方向

    http://blog.csdn.net/linolzhang/article/details/74159463 http://blog.csdn.net/linolzhang/article/det ...

  9. Deep_into_iris

    具体ipynb文件请移步Github #各种所需要的库函数首先加载 import numpy as np import pandas as pd import matplotlib.pyplot as ...

  10. P2964 [USACO09NOV]硬币的游戏A Coin Game (DP)

    题意:n颗硬币 两个人从前往后按顺序拿 如果上一个人拿了i颗 那么下一个可以拿1-2*i颗 问先手能获得的最大收益 题解:比较典型的最大最小最大最小..DP了 但是暴力做的话是n^3 所以就体现出了这 ...