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 相关文章推荐
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
Sep 11 Javascript
理解JS事件循环
Jan 07 Javascript
用js实现简单算法的实例代码
Sep 24 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
Angular7.2.7路由使用初体验
Mar 01 Javascript
vue中 this.$set的用法详解
Sep 06 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
使用jQuery实现购物车
Oct 29 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下MYSQL limit的优化
2008/01/10 PHP
浅谈php扩展imagick
2014/06/02 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
Python 打印中文字符的三种方法
2018/08/14 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python3 简单实现组合设计模式
2020/07/02 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
会计出纳岗位职责
2013/12/25 职场文书
财产保全担保书范文
2014/04/01 职场文书
班长演讲稿范文
2014/04/24 职场文书
公司委托书格式范本
2014/09/16 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android