详解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 相关文章推荐
Ext面向对象开发实践(续)
Nov 18 Javascript
基于jQuery的表格操作插件
Apr 22 Javascript
JavaScript初学者应注意的七个细节详细介绍
Dec 27 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
理解JS事件循环
Jan 07 Javascript
Angular 页面跳转时传参问题
Aug 01 Javascript
JS对象是否拥有某属性如何判断
Feb 03 Javascript
JavaScript实现简单轮播图效果
Dec 01 Javascript
微信小程序实现联动选择器
Feb 15 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 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内存溢出问题的解决方法
2013/06/25 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
详解php中 === 的使用
2016/10/24 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
银行开业庆典方案
2014/02/06 职场文书
事业单位岗位说明书
2015/10/08 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
分享一些Java的常用工具
2021/06/11 Java/Android