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 instanceof 与typeof使用说明
Jan 11 Javascript
javascript 循环读取JSON数据的代码
Jul 17 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
用JavaScript实现对话框的教程
Jun 04 Javascript
JavaScript SHA512&SHA256加密算法详解
Aug 11 Javascript
js实现文本框宽度自适应文本宽度的方法
Aug 13 Javascript
JS截取字符串实例详解
Nov 24 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
Aug 02 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 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
openPNE常用方法分享
2011/11/29 PHP
PHP正则验证Email的方法
2015/06/15 PHP
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
Python中集合类型(set)学习小结
2015/01/28 Python
Python中的多重装饰器
2015/04/11 Python
Python语法快速入门指南
2015/10/12 Python
pycharm远程调试openstack代码
2017/11/21 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
VC++笔试题
2014/10/13 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
小学生家长意见
2015/06/03 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python