详解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 相关文章推荐
键盘控制事件应用教程大全
Nov 24 Javascript
extjs grid取到数据而不显示的解决
Dec 29 Javascript
一个简单的js动画效果代码
Jul 20 Javascript
基于jQuery的图片大小自动适应实现代码
Nov 17 Javascript
悬浮数字的实现案例
Feb 19 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
React Native自定义控件底部抽屉菜单的示例
Feb 08 Javascript
浅谈React之状态(State)
Sep 19 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
在Web关闭页面时发送Ajax请求的实现方法
Mar 07 Javascript
你可能不知道的CORS跨域资源共享
Mar 13 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中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
php类自动加载器实现方法
2015/07/28 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
js去除重复字符串两种实现方法
2013/01/09 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
Javascript学习指南
2014/12/01 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
Python实现截屏的函数
2015/07/26 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python字符串对象实现原理详解
2019/07/01 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
一年级小学生评语
2014/04/22 职场文书
贷款担保申请书
2014/05/20 职场文书
宣传标语大全
2014/07/01 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
员工表扬信怎么写
2015/05/05 职场文书
食品药品安全责任书
2015/05/11 职场文书