详解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 相关文章推荐
JavaScript 三种创建对象的方法
Oct 16 Javascript
JavaScript prototype对象的属性说明
Mar 13 Javascript
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
May 10 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
使用webpack搭建react开发环境的方法
May 15 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
Angular PWA使用的Demo示例
Jan 31 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函数
2011/05/31 PHP
深入apache host的配置详解
2013/06/09 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
vuex入门最详细整理
2020/03/04 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python对字符串实现去重操作的方法示例
2017/08/11 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
django实现日志按日期分割
2020/05/21 Python
python zip()函数的使用示例
2020/09/23 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
会计毕业生自我鉴定
2013/11/04 职场文书
群众路线剖析材料
2014/02/02 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
委托书英文
2015/01/28 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
asyncio异步编程之Task对象详解
2022/03/13 Python