详解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 相关文章推荐
TFDN图片播放器 不错自动播放
Oct 03 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
jquery拖拽效果完整实例(附demo源码下载)
Jan 14 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
详解node HTTP请求客户端 - Request
May 05 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 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/07/28 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
个人自我鉴定
2013/11/07 职场文书
简历自荐信
2013/12/02 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
给老婆的保证书范文
2014/04/28 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
大学生毕业个人总结
2015/02/15 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
win10清理dns缓存
2022/04/19 数码科技