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 相关文章推荐
javascript:void(0)的作用示例介绍
Oct 28 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
浅谈Sublime Text 3运行JavaScript控制台
Jun 06 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
jquery实现输入框实时输入触发事件代码
Dec 21 Javascript
JavaScript中字符串的常用操作方法及特殊字符
Mar 18 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
vue双向绑定数据限制长度的方法
Nov 04 Javascript
js实现简单的打印表格
Jan 15 Javascript
实现一个简单得数据响应系统
Nov 11 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生成二维码的两个方法和实例
2014/07/01 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
jQuery 选择器理解
2010/03/16 Javascript
Javascript中的相等与不等运算
2010/04/25 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
再谈JavaScript线程
2015/07/10 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python判断telnet通不通的实例
2019/01/26 Python
Django实现学生管理系统
2019/02/26 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python 表格打印代码实例解析
2019/10/12 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
考试诚信承诺书
2014/05/23 职场文书
小学感恩主题班会
2015/08/12 职场文书
市级三好生竞选稿
2015/11/21 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL