JS定义函数的几种常用方法小结


Posted in Javascript onMay 23, 2019

本文实例讲述了JS定义函数的几种常用方法。分享给大家供大家参考,具体如下:

在 JavaScript 语言里,函数是一种对象,所以可以说函数是 JavaScript 里的一等公民(first-class citizens)。

之前我们这样定义过一个函数:

function greet(greeting, name) {
 return `${greeting}, ${name}`
}

因为在 JavaScript 里面是对象(object),所以它会有一些属性还有方法。比如 name 属性是函数的名字,length 属性指的是函数里面有多少个必须要传递的参数。比如访问上面定义的这个函数里的两个属性:

greet.name
// 输出 greet
greet.length
// 输出 2,表示有两个参数

函数都是 Function 的实例,所以你可以访问 Function 上定义的属性:name,length,可以使用方法:apply(),call()。可以这样证明:

greet instanceof Function
// 返回 'true'

函数表达式

函数是对象,也可以说函数是一个值,因为在 JavaScript 里面,它跟其它类型的值是一样的,比如字符串,数字。这就可以让我们使用函数表达式的方法来定义函数,也就是定义一个匿名函数(anonymous function),再把它交给一个变量。像这样:

var greet = function (greeting, name) {
 return `${greeting}, ${name}`
}

Lambda 表达式

ES6 可以让我们用 Lambda 表达式,也就是箭头函数(fat arrow function),看起来像这样:

var greet = (greeting, name) => {
 return `${greeting}, ${name}`
}

上面这个函数的主体部分只有一行,就是 return 了一个字符串,所以我们可以让它更简洁一些:

var greet = (greeting, name) => `${greeting}, ${name}`

箭头右边的东西会自动被返回(return)。

对象里的方法

如果有一个函数是在一个对象里,一般我们称这种函数是对象的一个方法(method)。

试一下:

var obj = {
 greet: function (greeting, name) {
  return `${greeting}, ${name}`
 }
}

ES6 可以让我们这样为对象定义方法:

var obj = {
 greet (greeting, name) {
  return `${greeting}, ${name}`
 }
}

上面定义了一个名字是 obj 的对象,在它里面添加了一个叫 greet 的方法。要使用这个方法可以这样:

obj.greet('hello', ' my name is X ')
// 返回 “ hello, my name is X ”

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JQuery 简便实现页面元素数据验证功能
Mar 24 Javascript
很好用的js日历算法详细代码
Mar 07 Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 Javascript
JS插件overlib用法实例详解
Dec 26 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
js实现单元格拖拽效果
Feb 10 Javascript
JS实现可控制的进度条
Mar 25 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 Javascript
vue-test-utils初使用详解
May 23 #Javascript
了解前端理论:rscss和rsjs
May 23 #Javascript
微信小程序使用字体图标的方法
May 23 #Javascript
个人小程序接入支付解决方案
May 23 #Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 #Javascript
微信小程序上传图片到php服务器的方法
May 23 #Javascript
React精髓!一篇全概括小结(急速)
May 23 #Javascript
You might like
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
使用Python脚本操作MongoDB的教程
2015/04/16 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python selenium文件上传方法汇总
2020/11/19 Python
Python表示矩阵的方法分析
2017/05/26 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python数据类型之List列表实例详解
2019/05/08 Python
pygame实现非图片按钮效果
2019/10/29 Python
python 循环数据赋值实例
2019/12/02 Python
Python3实现飞机大战游戏
2020/04/24 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
区域销售经理职责
2013/12/22 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
感恩节寄语2015
2015/03/24 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
党性修养心得体会2016
2016/01/21 职场文书