详解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 20 Javascript
豆瓣网的jquery代码实例
Jun 15 Javascript
js trim函数 去空格函数与正则集锦
Nov 20 Javascript
javascript中的继承实例代码
Apr 27 Javascript
DOM基础教程之使用DOM
Jan 19 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
jQuery右下角悬浮广告实例
Oct 17 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
Apr 14 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作的文本留言本的例子(二)
2006/10/09 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
js实现验证码干扰(静态)
2021/02/22 Javascript
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Python实现FLV视频拼接功能
2020/01/21 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
JPA的特点
2014/10/25 面试题
电气技术员岗位职责
2013/11/19 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
节电标语大全
2014/06/23 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
明星邀请函
2015/02/02 职场文书
试用期自我评价范文
2015/03/10 职场文书
设备技术员岗位职责
2015/04/11 职场文书
团队拓展训练感想
2015/08/07 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技