详解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 HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
json对象转字符串如何实现
Dec 02 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
javascript实现的简单的表单验证
Jul 10 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
vue-cli设置css不生效的解决方法
Feb 07 Javascript
编写v-for循环的技巧汇总
Dec 01 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
深入了解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分页显示制作详细讲解
2008/11/19 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
javascript正则表达式总结
2016/02/29 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
python之wxPython菜单使用详解
2014/09/28 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
详解Django中的过滤器
2015/07/16 Python
详解python的四种内置数据结构
2019/03/19 Python
python输入多行字符串的方法总结
2019/07/02 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python django中8000端口被占用的解决
2019/12/17 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
校园自助餐厅的创业计划书
2013/12/26 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
小班上学期评语
2014/05/05 职场文书
学生保证书格式
2015/02/27 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server