ホームページ  >  に質問  >  本文

javascript - スコープ汚染を避けるために、Node.js は各 .js ファイルに個別のコンテキストを与えないのはなぜですか?

cnode フォーラムでこの質問を見ました:

現在の Node.js は VM インターフェースを公開しており、新しい JS コンテキストを自分で作成できます。これは、外部コードを実行するとき、新しいコンテキストを作成することで、サンドボックスがコンテキスト汚染を回避できます。

リーリー

新しいコンテキストを通じて汚染を回避できるのに、Node.js はスコープの汚染を避けるために各 .js ファイルに独立したコンテキストを与えないのはなぜですか?

私は本当に勉強が得意ではありません。まず、彼が何を尋ねたのか理解できませんでした。次に、この問題を解決する方法を教えていただければ幸いです。よろしくお願いします。

引用元:

https://github.com/ElemeFE/no...

PHP中文网PHP中文网2713日前1590

全員に返信(5)返信します

  • 高洛峰

    高洛峰2017-05-16 13:47:41

    Node が各 js ファイルに独立したコンテキストを与えないと誰が言ったのでしょうか... Node の各 .js ファイルは、実際には関数でカプセル化されています。詳細については、知っておく必要がある Node.js モジュールを参照してください。

    追記:あなたの質問を誤解しました。グローバル変数の意味は「グローバル」です。Node にもこれがあり、Java や C# でも静的メンバーを介して「グローバル」を実装できます。全体像自体が問題なのではなく、問題はその全体像が本当に必要なのかということです。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:47:41

    あらゆる js文件有独立的module,仔细看过node官网的module部分就能知道,每个模块也就是文件都有自己的全局变量module,从而能通过module.exports进行模块导出,每个文件的内容都存在一个闭包中,所以说,所谓的单独上下文其实是有的,看你怎么定义这个单独上下文,如果没有的话,CommonJSmodule メカニズムは存在しなくなります。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:47:41

    実際には、この問題は少し複雑です。実際、Node は各 js ファイルに独立したコンテキストを与えますが、これは機能の妥協です。

    もちろん、一時的な不注意によって引き起こされる地球規模の汚染を避けるために、厳密モードを使用することもできます。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:47:41

    この質問には誰も回答していないようです。自分でコメントしてください。

    この質問にほぼ答えられる答えをZhihuで見つけました

    ほぼ同じ感じです。

    https://www.zhihu.com/questio...

    返事
    0
  • 怪我咯

    怪我咯2017-05-16 13:47:41

    モジュールって上位版と下位版だけじゃないんですか?

    返事
    0
  • キャンセル返事