怎么理解: 在 JavaScript 中,对象和函数也是变量?

在 JavaScript 中,对象和函数也是变量

怎么理解这句话?

阅读 1.9k
2 个回答

其实变量是容器来着
参考:
JavaScript 快速入门 — 变量
如何存储你需要的信息 — 变量

变量是存储值的容器

JavaScript 里一切皆对象,一切皆可储存在变量里。这一点要牢记于心。

变量是容器.png

函数也属于对象,是 Object 的子类,(a => a) instanceof Object === true
所以函数也支持赋值和传参
测试代码:

let fn = function(a) {
  return a * 2
}
console.log(fn(10))
fn = a => a * 3
console.log(fn(10))
let fn2 = fn
console.log(fn2(10))
;[
  fn,
  fn2,
  a => a * 4
].forEach(fn => console.log(fn(10)))

let fn3 = (fn1, fn2, a) => fn1(a) + fn2(a)

console.log(fn3(fn, fn2, 10))
console.log(fn3(a => a + a, a => a * a, 10))

在js中函数是一等公民
因为在其他部分语言中 函数是不能作为变量
而js可以作为值来传递

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题