详解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 相关文章推荐
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
js 博客内容进度插件详解
Feb 19 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
Oct 16 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
解决vue移动端适配问题
Dec 12 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
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
如何在PHP中生成随机数
2020/06/04 PHP
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
python实现的文件同步服务器实例
2015/06/02 Python
Python中文字符串截取问题
2015/06/15 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python elasticsearch环境搭建详解
2019/09/02 Python
用python实现名片管理系统
2020/06/18 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
应届大学生简历中的自我评价
2014/01/15 职场文书
保安队长职务说明书
2014/02/23 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
办理护照工作证明
2014/10/10 职场文书
网吧员工管理制度
2015/08/05 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript