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 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
Jquery插件 easyUI属性汇总
Jan 19 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
JavaScript实现身份证验证代码
Feb 17 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
May 30 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
微信小程序自定义组件实现tabs选项卡功能
Jul 14 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 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使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
详解python之简单主机批量管理工具
2017/01/27 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python得到电脑的开机时间方法
2018/10/15 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
用 Python 制作地球仪的方法
2020/04/24 Python
详细分析Python collections工具库
2020/07/16 Python
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
好军嫂事迹材料
2014/01/15 职场文书
服装采购员岗位职责
2014/03/15 职场文书
工作检讨书怎么写
2015/01/23 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL