Bylx666 / key-lang

目标是最精致的编程语言
https://docs.subkey.top
Mozilla Public License 2.0
112 stars 4 forks source link

函数callhere与期望不符 #6

Closed XYZboom closed 4 months ago

XYZboom commented 4 months ago
let a;
let f() {
    let a = 1;
    let inner() {
        log(a);
    }
    inner();
}

f.call_here(());

期望输出uninit,实际输出1

Bylx666 commented 4 months ago

这是期望值. 你调用的是inner函数, 而inner函数所处的作用域是a为1的作用域. call_here的作用仅仅是将一层函数切换作用域, 而不会递归影响内部所有函数.