详解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 相关文章推荐
AutoSave/自动存储功能实现
Mar 24 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
xmlplus组件设计系列之树(Tree)(9)
May 02 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
Dec 06 Javascript
JS删除String里某个字符的方法
Jan 06 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
javascript实现前端分页效果
Jun 24 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
javascript实现京东登录显示隐藏密码
Aug 02 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
世界收音机发展史
2021/03/01 无线电
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python自动化测试实例解析
2014/09/28 Python
python处理按钮消息的实例详解
2017/07/11 Python
Python模块搜索路径代码详解
2018/01/29 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Python socket服务常用操作代码实例
2020/06/22 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
const和static readonly区别
2013/05/20 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
酒店服务与管理毕业生求职信
2013/11/02 职场文书
销售总监岗位职责
2014/01/04 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
《乞巧》教学反思
2014/02/27 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
单位员工收入证明样本
2014/10/09 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
家长会感言
2015/08/01 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书