详解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 相关文章推荐
简单时间提示DEMO从0开始一直进行计时
Nov 19 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
JS实现从网页顶部掉下弹出层效果的方法
Aug 06 Javascript
微信小程序 wxapp地图 map详解
Oct 31 Javascript
JavaScript表单验证的两种实现方法
Feb 11 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
Jul 17 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php printf输出格式使用说明
2010/12/05 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
jQuery Dom元素操作技巧
2018/02/04 jQuery
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
python中实现字符串翻转的方法
2018/07/11 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
利用Python实现kNN算法的代码
2019/08/16 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Python如何获取文件指定行的内容
2020/05/27 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
小学生安全保证书
2015/05/09 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang