详解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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
利用NPM淘宝的node.js镜像加速nvm
Mar 27 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
JS实现标签页切换效果
May 04 Javascript
微信小程序登录session的使用
Mar 17 Javascript
Vue模板语法中数据绑定的实例代码
May 17 Javascript
微信小程序 image组件遇到的问题
May 28 Javascript
用Node写一条配置环境的指令
Nov 14 Javascript
js实现菜单跳转效果
Dec 11 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脚本数据库功能详解(中)
2006/10/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php自动获取关键字的方法
2015/01/06 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
jQuery实现动态操作table行
2020/11/23 jQuery
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
党员民主评议自我评价
2014/10/20 职场文书
2014年医务科工作总结
2014/12/18 职场文书
高二数学教学反思
2016/02/18 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python