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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
jquery 操作表格实现代码(多种操作打包)
Mar 20 Javascript
jquery分页对象使用示例
Apr 01 Javascript
javascript常见用法总结
May 22 Javascript
jQuery内容过滤选择器用法分析
Feb 10 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
Dec 18 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
Jun 23 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 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文件的实现方法
2007/03/19 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python实现k-means聚类算法
2018/02/23 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
香港交友网站:be2香港
2018/07/22 全球购物
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
财产保全担保书
2015/01/20 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
总结Python连接CS2000的详细步骤
2021/06/23 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Redis全局ID生成器的实现
2022/06/05 Redis