总结&吐槽-js悟道-12章-函数

例程 => 子例程 编译器 调用call

  1. c语言没有设计函数的关键字, js 是function, 函数体就是一个语句区块
function f(a = 1, ...rest) { // 参数默认值,如果传undefined(不传也是undefined)会采用默认值, 动态参数

}
function f() {
 return 1 + 1
 }
 function g(n) {
     return n + 1
 }
g(f()) // 3
g(a = 1 + f()) // 4
g(1 + 1) // 3

每当函数被调用时都会创建一个活跃对象, 是个隐藏的数据结构,包含了函数在执行时所必需的信息和绑定,以及返回值地址等…

活跃对象包括

  1. 对应函数对象的引用
  2. 调用者对应的活跃对象,用于return之后的控制权转义
  3. 调用完毕后用于继续执行后续逻辑的恢复信息,通常是一个将在函数调用完毕之后立即执行的指令的地址
  4. 函数对应的形参,从实参初始化而来;
  5. 函数中的变量, 以undefined进行初始化
  6. 函数用于计算复杂表达式的临时变量
  7. this()
    理想状态下函数对象应该是不可变对象
    当函数对象被创建的时候,这个函数对应的活跃对象就被激活了 // … 不是说函数调用的时候创建活跃对象吗, 这就激活了?
    垃圾回收机制? 根据引用的数量决定的…

离开了闭包, js就没有了灵魂,只是一个由"还不错的设计初心""一堆设计事物"和"类"堆砌而成的空架子


这一章总共三页左右, 这…干货太少了, 很多不知所云, 啥活跃对象…

13-章生成器

  1. 作者不建议使用生成器
function* fn() {
	let count = 0
	while (true) {
		count++
		yield count
	}
}
const g = fn()
console.log(g.next().value) // 1
console.log(g.next().value) // 2
console.log(g.next().value) // 3

又说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值