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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
基于jquery的一个简单的脚本验证插件
Apr 05 Javascript
JS Replace()的高级使用方法介绍
Jun 29 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
Apr 15 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
js实现点击上传图片并设为模糊背景
Aug 02 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php实现将Session写入数据库
2015/07/26 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
原生js生成图片验证码
2020/10/11 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
python重试装饰器示例
2014/02/11 Python
用Python编写web API的教程
2015/04/30 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
Python3 修改默认环境的方法
2019/02/16 Python
Python 导入文件过程图解
2019/10/15 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
平面设计自荐信
2013/10/07 职场文书
夜大毕业生自我评价分享
2013/11/10 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
2014年科普工作总结
2014/12/06 职场文书
会议开幕词
2015/01/28 职场文书
会议邀请函
2015/01/30 职场文书
面试复试通知单
2015/04/24 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android