详解JavaScript自定义函数


Posted in Javascript onJuly 29, 2020

一、定义方法:在Javascript中必须用function关键字

function funcName(arg1,arg2...)
{
statements;
return "变量值"; //返回值可以根据函数的需要
}

函数名是函数自身的一个引用。此种方式创立的函数引用是独立存在的,无法删除。

1、调用函数:函数名(参数列表)。

传递的参数不必与函数定义的参数个数一致,并且可以设定函数参数的默认值。

function example(a,b){
  var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为
  var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2
  return a+b;
}
alert(example());  //输出3

其他方法:设置默认参数方式

2、嵌套函数:在JS中,函数的定义中还可以再次定义新的函数

function say()
{
  function add(x,y)
  {
   return (x+y);
  }
  alert(add(2,3));
}
say(); //输出5

内嵌函数add()只能在嵌套它的函数(say())中调用,而不能再外部调用。

3、条件函数:

var b = false;
if(b)
{
	function ex1()
	{
		alert(1);
	}
		ex1();
}
else
{
	function ex2()
	{
		alert(0);
	}
	     ex2();
}

输出0,将b的值改为TRUE,则输出1,不演示。条件函数的花括号不具有范围限制,即可以在花括号外访问函数。

二 、函数的特殊条用方式:网页中的所有方法可以看做全局对象window对象的方法

function add(x,y)
{
	return x+y;
}
//1
alert(window.add(2,3));

//2
alert(window['add'](2,3));

以上结果均是5

三、函数表达式定义函数:匿名函数

1、定义方式:var fucName = function(arg1,arg2,...){statements;}

var add = function (x,y)
{
	return x+y;
}

alert(add(2,3));//输出为5

其中,add是该函数的唯一引用,当add=null,该函数便不能再调用。

2、匿名自执行函数:

(function(x,y)
	{
		alert(x + y) ;
	})(2,3);     //立即自动执行,结果为5

3、匿名函数的用途

2.1  用于一次调用后就丢弃的函数

2.2  向prototype属性附加函数以实现对象方法的定义

四、使用Function定义函数:

在JS中,Function为核心类的一种,而其他方式定义的函数也均作为对象对待,因为在JS中的OOP中,不存在类的概念,这是JS与Java、C#等语言的区别。

var add = new Function(“函数参数”,"函数体"); add为函数名,即函数的一个引用。

var add = new Function('x','y',"return x+y");
alert(add(2,3));

上述的结果为5.

五、闭包函数:当一个函数不位于它所处环境(变量的作用范围)被调用,仍可使用本地变量(脱离了变量的作用范围仍可使用该变量),这是闭包函数的显著特征。

5.1    作为值从函数返回的函数是闭包函数

function B()
{
	var temp="abc";
	function A()
	{
		alert("闭包函数处理本地变量temp = "+temp);
	}
	return A;
}
var a = B();
a();

运行结果:(本地变量是函数内声明的变量)

详解JavaScript自定义函数

5.2   利用变量的作用范围形成闭包函数

var F;
function B()
{
	var temp="abc";
	F=function ()
	{
		alert("利用变量范围形成闭包函数处理本地变量temp = "+temp);
	}
}
B();
F();

运行结果

详解JavaScript自定义函数

以上就是详解JavaScript自定义函数的详细内容,更多关于JavaScript自定义函数的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
JavaScript中的Screen屏幕对象
Jan 16 Javascript
JQuery 常用操作代码
Mar 14 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
简单的js表格操作
Sep 24 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
深入了解JavaScript词法作用域
Jul 29 #Javascript
vue监听dom大小改变案例
Jul 29 #Javascript
VUE实时监听元素距离顶部高度的操作
Jul 29 #Javascript
详解JavaScript作用域 闭包
Jul 29 #Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 #Javascript
Vue 监听元素前后变化值实例
Jul 29 #Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 #Javascript
You might like
php smarty模板引擎的6个小技巧
2014/04/24 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php提取微信账单的有效信息
2018/10/01 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JS获取时间的方法
2015/01/21 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
python全面解析接口返回数据
2022/02/12 Python