そこで、JavaScript レキシカルスコープに関するこの記事を読んでいるのですが、著者は「JavaScript は真に静的ではない」と指摘しています。次に、彼は次の例でこれを「証明」します。
var count = 5;
function tellCount() {
console.log(count);
};
tellCount(); //prints 5
count = 7;
tellCount(); //prints 7;
ここで何が欠けていますか?彼はカウント変数をグローバル名前空間に 5 として配置し、グローバル変数を参照して 5 を出力するメソッドを呼び出し、グローバル変数を 7 に変更してメソッドを再度呼び出します。私が間違っていなければ、グローバル変数を変更し、変数を使用するメソッドを再呼び出しすると、静的にスコープされた言語でこれが行われます。
著者は、JavaScript が真に静的スコープではないことを本当に証明していますか?
注: JavaScript の eval が動的スコープの形式を JS に導入することは知っていますが、この著者が書いたことを証明/反証することにもっと興味があります。