函数是第一类对象(first-class object),被称为一等公民。函数与对象共存,我们也可以认为函数就是其他任意类的对象。

那么今天,就让我们一起简单聊一聊JavaScript的函数吧!

目录

函数——JavaScript最关键的概念

函数是第一类对象

函数的功能


函数——JavaScript最关键的概念

  • 函数是第一类对象(first-class object),被称为一等公民。函数与对象共存,我们也可以认为函数就是其他任意类的对象。由此可见,对象有的功能,函数也会拥有。
  • 函数是程序执行过程中的主要模块单元,除了全局JavaScript是在页面构建阶段执行的,我们编写的所有脚本代码都将在一个函数内执行。
  • 既然我们把函数看作是一类对象,那么我们在编写函数的时候就应该利用对象拥有的一些功能特性,并从中获益,编写出更高性能、更健壮的JavaScript代码。

函数是第一类对象

  • 在JavaScript中,对象所拥有的功能,函数一样拥有。
  • 函数也是对象,唯一不同的地方在于,函数是可以调用的(invokable),也就是说函数会被调用以便执行某项动作。
  • 函数式编程更易测试、扩展和模块化。它通过书写函数式代码来解决问题,而不是像大多数初学者那样,指定一系列执行步骤,更像是面向对象的命令式编程。
  • 我的导师告诉我,学习JS,如果一开始就以面向对象的思想去学习,那效果完全不一样。

函数的功能

在JavaScript中,函数拥有对象所拥有的全部功能。

/*** 对象可以通过字面量来创建* 对象可以赋值给变量、数组项,或是其他对象的属性* 对象可以作为参数传递给参数* 对象可以作为函数的返回值* 对象能够具有动态创建和分配的属性**///通过字面量来创建函数
var test = function testFunction() {}
//为函数赋值一个新对象
var testFunction = {};
//向数组中增加一个新对象
newArray.push({});
//给某个对象属性赋值为一个新对象
newDom.data = function() {}
//对象作为参数传递给函数
function call(testFunction){testFunction();
}
call(function (){})
//函数中返回一个新对象
function returnFunction() {return function(){};
}
//动态分配和创建
var testFunction = function(){};
testFunction.test = "Hello";

JavaScript中的函数是对象?相关推荐

  1. 浅析 JavaScript 中的 函数 uncurrying 反柯里化

    柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...

  2. Javascript中的函数重载-最佳做法

    用JavaScript伪造函数重载的最佳方法是什么? 我知道不可能像其他语言一样重载Javascript中的函数. 如果我需要两个函数一起使用foo(x)和foo(x,y,z) ,这是最佳/首选方式: ...

  3. 彻底理解JavaScript中回调函数 (推荐)

    在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply() ...

  4. JavaScript中Exists函数

    JavaScript中Exists函数是如果 Dictionary 对象中存在所指定的主键则返回 true,否则返回 false.使用方法: object.Exists(key) 其中object是必 ...

  5. JavaScript中的函数表达式

    在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表 ...

  6. JavaScript中charAt函数

    JavaScript中charAt函数的作用是返回指定索引位置处的字符. 使用方法: strObj.charAt(index) 其中 strObj是必选项.任意 String 对象或文字. index ...

  7. javaScript 中 call 函数的用法说明

    javaScript 中 call 函数的用法说明 javaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释: call 方法 请参阅 应用于:Func ...

  8. JvavScript中的函数与对象

    function函数 需要注意的是JavaScript中的函数也是一个对象,所以函数也是在堆中保存的 JavaScript中的函数可以分为系统函数和自定义函数. 每个类型又分为: a.不带参数的函数 ...

  9. JavaScript中ubound函数

    JavaScript中ubound函数方法是返回在 VBArray 的指定维中所使用的最大索引值.使用方法: safeArray.ubound(dimension) 其中safeArray是必选项.是 ...

最新文章

  1. go 指针变量和普通变量的转化_C语言 | 指向结构体变量的指针变量
  2. verilog中的三目运算符
  3. Centos6下安装中文字体
  4. solrcloud java_SolrCloud之zookeeper中使用java代码创建集合
  5. js中继承的几种用法总结(apply,call,prototype)
  6. 1.17 Java.util.logging:JDK自带记录日志类
  7. redis多服务器共享_【数据库】Redis(二)持久化及事务
  8. HGE引擎适用于MFC的修改
  9. java socket程序应用_socket应用小程序
  10. Oracle 行列转换2
  11. [Python] 读取存储.mat数据 scipy.io.loadmat(FileName)和scipy.io.savemat('XXX.mat', {'x': x,'y': y,'z': z})
  12. python基础之字典、集合
  13. PHP 动态获取数组索引的值
  14. 微信公众号与小程序(十九)
  15. 空间存储公链(SSCC)主链已进入公测阶段预计2020年初上线
  16. 不知道视频转文字软件哪个好用?视频转文字软件大分享
  17. 远程连接服务器突然失败
  18. 白光干涉仪可以用于测量化妆品用的云母材料?
  19. 马化腾从CFIDO到QQ(CFIDO BBS回忆录)
  20. VSCode使用技巧——Ctrl+鼠标滚轮键使字体进行缩放

热门文章

  1. 用户画像、用户分级与指标提升策略数据分析(jd消费者行为数据分析)
  2. 【板栗糖GIS】arcmap—如何使属性表中的数值四舍五入保留两位小数
  3. java交错数组_Java和C#数组都可以交错的
  4. 电脑调分辨率黑屏了怎么办_电脑调整了分辨率,黑屏。解决方法
  5. linux如何检测超频,如何在Ubuntu中对图形卡进行超频?
  6. 原子制造:物质科学的未来技术
  7. GT928 TP驱动跟读及虚拟按键上报解析
  8. 小白跑WRF第二天,安装环境(各种编译器)的准备
  9. 《C语言及程序设计》实践项目——利用switch语句解决问题
  10. matlab intergral,matlab学习:人脸识别之HOG(Histograms of Oriented Gradients)