【转载】javascript中的函数对象
原文地址: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中的函数对象的更多相关文章
- (转载)JavaScript中匿名函数,函数直接量和闭包
首先,我们先看看下面几种写法:1.function f(x){return x*x;};f(x);2.(function(x){return x*x;})(x);3.(function(x){retu ...
- Javascript中的函数(三)
一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质 ...
- Javascript中的函数(Function)与对象(Object)的关系
今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一 ...
- JavaScript中Function函数与Object对象的关系
函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object.Array.Date.RegExp.Math.Error.这些名称实际上表示一个 类型,可以通过new操作符返回一个对 ...
- java基础62 JavaScript中的函数(网页知识)
1.JavaScript中,函数的格式 function 函数名(形参列表){ 函数体; } 2.JavaScript中,函数需要注意的细节 1.在javaScript中,函数定义形参时,是不能使用v ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- JavaScript中的函数表达式
在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表 ...
- JavaScript中的事件对象
JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...
- JavaScript中Eval()函数的作用
这一周感觉没什么写的,不过在研究dwz源码的时候有一个eval()的方法不是很了解,分享出来一起学习 -->首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. ...
随机推荐
- SpringBoot学习 (一) Eclipse中创建新的SpringBoot项目
1. Eclipse中安装STS插件 (1)在线安装 Help--Eclipse Marketplace... 搜索“STS”,点击“install”安装 (2)本地安装 打开网页 http:/ ...
- java5增加对https的支持
jdk1.5不支持http协议,jdk1.8默认支持,比较好的解决方案是升级jdk,但是升级jdk风险极大.不能升级jdk的情况下,可以使用如下方式. 利用httpclient,进行封装,从而实现对h ...
- [python3]PyCharm编辑器
简介 Python有丰富的开发工具,本教程不一一进行介绍,只推荐大家使用PyCharm,因为python开发者都在用它,但缺点就是消耗电脑资源,如果你电脑配置低,就会比较卡 下载 下载地址: http ...
- 在LXC Centos6-moban 编译安装mysql-5.6.36 时候遇见的报错
在LXC安装Centos6-moban 编译安装mysql-5.6.36 cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 -DMY ...
- CAD交互绘制矩形框(网页版)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- webpack、node、npm之间的关系
webpack能够把.vue后缀名的文件打包成浏览器能够识别的js 而这个.vue文件装换需要打包器vue-loader 这个vue-loader打包器是可以从npm上面下载(npm上面有很多资源包) ...
- 「 Luogu P2574 」 XOR的艺术——线段树
# 解题思路 这题不难,但是原谅我一开始的傻逼想法,一会儿再给大家透露透露. 先说怎么做这题. 显然对于 $0$ 和 $1$ 来说,异或无非也就只有两种变化 异或了奇数次,$0$ 就会变成 $1$,$ ...
- opencv加载图片和视频
一.加载图片: 1.先放一段最简单的加载图片的代码 import cv2 as cv #引用opencv库image = "D:/Image/test.jpg" #确定图片所在路径 ...
- Melancholy(磨懒虫主义)
题目大意:给出n个地点和q个询问.其中每个地点有距离和权值,每个询问给出l,r,k,表示在[l,r]区间内不取最小点的情况下任取k个,求所有情况权值之积之和(n,q<=1e5,k<=6). ...
- [CF] 948A Protect Sheep
A. Protect Sheep time limit per test1 second memory limit per test256 megabytes inputstandard input ...