Javascript中的方法和匿名方法实例详解


Posted in Javascript onJune 13, 2015

本文实例讲述了Javascript中的方法和匿名方法。分享给大家供大家参考。具体分析如下:

Javascript方法(函数)

声明函数

以function开头,后跟函数名,与C#、java不同,Javascript不需要声明返回值类型、参数类型。没有返回值就是undefined。

举个例子更清楚: 
无参数无返回值的方法:

function f1(){
alert('这是一个方法');
}
f1();//调用方法

无参数有返回值的方法:

function f2(){
return 100;
}
var result=f2();//声明一个变量,接收f1()中的返回值
alert(result);//100

有参数有返回值的方法:

function f3(n1,n2){
return n1+n2;
}
var result=f3(20,30);
alert(result);//50

注意1:

先看例子:

function f1(){
  alert('这是一个方法'); 
}
alert(f1());//弹出”这是一个方法”后,还会显示undefined

原因:js中,变量没有赋值,就是undefined;该栗中f1()没有返回值,那么就是一个未知的值(undefined),这里未知的变量放入alert(),当然弹出的就是undefined

注意2:

alert(f1);//不写括号,会将f1整个代码以字符串形式显示出来:
function f1(){ 
alert('这是一个方法'); 
}

JavaScript中没有方法重载

只调用最新定义的方法:

function f1(n1,n2){ 
alert(n1+n2); 
} 
function f1(n1,n2){ 
alert(n1-n2); 
} 
f1(10,2);//8

结论:无论在哪里调用,都只调用最新定义的方法。

注意:数字+undefined=undefined

function f1(n1,n2,n3){ 
alert(n1-n2+n3); 
} 
f1(10,2);
//NaN,因为没有给n3传值,n3就是undefined,
//数字加上undefined还是undefined

以上结论:Javascript中没有方法重载

定义方法时注意:

自定义函数名不要和内置方法重名:
不要和js内置、dom内置方法重名,比如selectAll、focus等函数名不要用。

不要与系统函数重名。(在单击事件中调用自己定义的focus方法,有问题。与系统的focus()方法重名了)

书写规则括号注意:

一般在js中编写大括号都是直接跟在后面

function f1(){ 
return 
{ 
age:100}; 
} 
var s=f1(); 
alert(s.age);
//undefined。s结果是undefined,undefined.age必然还是undefined

匿名方法(用的非常多)

为什么推荐用匿名方法?

1、有一个1.js中有个方法function aa(){alert{'我挺帅了'}}

2、有一个2.js中有个方法function aa(){alert{'我越来越帅了'}}

3、将1.js和2.js依次导入到index.html中,调用aa();结果显示:我越来越帅了。

结论:2.js中的aa()方法会覆盖1.js中的aa()

怎么办?不再指定方法名,使用匿名方法

先看一个将匿名方法赋给变量例子:

var ff=function(n1,n2){ 
return n1+n2; 
}; 
alert(ff(20,30));//50

一行写完匿名方法:

(function (n1,n2){alert(n1+n2);})(9,9);

小案例:1:

var x=1; 
var y=0; 
var z=0; 
var add=function (n){n=n+1;return n}; 
y=add(x);//结果是2,先调用上面add 
add=function(n){n=n+3;return n;}; 
z=add(x);//结果是4,调用上面临近的这个add 
alert(y+','+z);//2,4

小案例2:

function aa() 
{ 
  alert("aaa"); 
  return function(){alert("bbb");}; 
} 
alert(aa);//不写括号,会将aa方法的整个代码显示出来 
alert(aa());//aaa,function(){alert("bbb");}; aaa就不解释了,后面那一串是作为aa()的返回值显示 
alert(aa()());//aaa,bbb,undefined 
//下面分解上面这句进行解释 
var s=aa();//aaa 
alert(s());//s()就是function(){alert("bbb");};首先弹出bbb,其次该方法没有返回值,故弹出undefined

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
ext 列表页面关于多行查询的办法
Mar 25 Javascript
JavaScript中常见陷阱小结
Apr 27 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 Javascript
jquery获取当前日期的方法
Jan 14 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
详解将微信小程序接口Promise化并使用async函数
Aug 05 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 #Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 #Javascript
jQuery实现的五子棋游戏实例
Jun 13 #Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 #Javascript
JQuery自动触发事件的方法
Jun 13 #Javascript
JQuery中DOM实现事件移除的方法
Jun 13 #Javascript
JQuery中DOM事件冒泡实例分析
Jun 13 #Javascript
You might like
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
php编写简单的文章发布程序
2015/06/18 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
python解析json实例方法
2013/11/19 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
在django view中给form传入参数的例子
2019/07/19 Python
python 字符串追加实例
2019/07/20 Python
python中几种自动微分库解析
2019/08/29 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
thinkphp5 路由分发原理
2021/03/18 PHP
白宫黑市官网:White House Black Market
2016/11/17 全球购物
文员岗位职责
2013/11/09 职场文书
管理建议书范文
2014/05/13 职场文书
办公室日常管理制度
2015/08/04 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
新手初学Java网络编程
2021/07/07 Java/Android
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
你真的会用Mysql的explain吗
2022/03/31 MySQL
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
JavaScript实现音乐播放器
2022/08/14 Javascript