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 相关文章推荐
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
JavaScript组件开发完整示例
Dec 15 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
Aug 15 Javascript
jquery遍历标签中自定义的属性方法
Sep 17 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
jQuery中layer分页器的使用
Mar 13 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
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
PHP 八种基本的数据类型小结
2011/06/01 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
利用HBuilder打包前端开发webapp为apk的方法
2017/11/13 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python中如何设置代码自动提示
2020/07/15 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
中英双版中文教师求职信
2013/10/27 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
财务务虚会发言材料
2014/10/20 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android