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

 更新时间:2019年05月23日 12:04:45   作者:longzhoufeng  
这篇文章主要介绍了JS定义函数的几种常用方法,结合实例形式总结分析了javascript函数表达式、Lambda 表达式、对象方法等常见函数定义操作技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • ES6中的Promise对象与async和await方法详解

    ES6中的Promise对象与async和await方法详解

    Promise是es6引入的异步编程薪解决方案,语法上promise就是一个构造函数,用来封装异步操作病可以获取其成功或失败的结果,这篇文章主要介绍了ES6中的Promise对象与async和await方法,需要的朋友可以参考下
    2022-12-12
  • script标签属性type与language使用选择

    script标签属性type与language使用选择

    很多使用javascript的朋友都有着这样一个问题:script标签属性type与language使用应如何选择,为解决此疑惑,本文详细整理了一下,需要的朋友可以参考下
    2012-12-12
  • 微信小程序scroll-view实现字幕滚动

    微信小程序scroll-view实现字幕滚动

    这篇文章主要为大家详细介绍了微信小程序scroll-view实现字幕滚动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Bootstrap入门书籍之(三)栅格系统

    Bootstrap入门书籍之(三)栅格系统

    这篇文章主要介绍了Bootstrap入门书籍之(三)栅格系统的相关资料,需要的朋友可以参考下
    2016-02-02
  • 一文带你了解一下JavaScript中什么是严格模式

    一文带你了解一下JavaScript中什么是严格模式

    严格模式是 ECMAScript 5 引入的一种运行模式,可以让 JavaScript 在更加严格的条件下运行,本文主要为大家详细介绍了JavaScript中严格模式的使用,需要的可以参考下
    2023-11-11
  • javaScript实现支付10秒倒计时

    javaScript实现支付10秒倒计时

    这篇文章主要为大家详细介绍了javaScript实现支付10秒倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Angular中针对路由Routing原理刨析

    Angular中针对路由Routing原理刨析

    在Angular中,最好在一个顶级模块中加载和配置路由,它专注于路由功能,然后由根模块AppModule导入它,最后还有初始化并监听浏览器的地址变化
    2023-01-01
  • 微信小程序骨架屏的实现方法

    微信小程序骨架屏的实现方法

    本文主要介绍了微信小程序骨架屏的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • JS中生成随机数的用法及相关函数

    JS中生成随机数的用法及相关函数

    这篇文章主要为大家介绍了JS中生成随机数的用法,为大家提供了相关函数的使用方法,感兴趣的朋友可以参考一下
    2016-01-01
  • socket在egg中的使用实例代码详解

    socket在egg中的使用实例代码详解

    这篇文章主要介绍了socket在egg中的使用,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05

最新评论