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 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
Nov 05 Javascript
JavaScript变量声明详解
Nov 27 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
Oct 04 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
vue2.0 路由模式mode="history"的作用
Oct 18 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 Javascript
JavaScript 异步时序问题
Nov 20 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
用python绘制樱花树
2020/10/09 Python
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
.NET remoting的两种通道是什么
2016/05/31 面试题
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
初中运动会前导词
2015/07/20 职场文书