0

ファイルstats.jsがあります。

その内容は

(function () {
    func1 = function () {

    }
    func2 = function () {

    }

    module.exports = this;

}).call(this);

伝えられるところでは、私がそうするとき

var stats = require("./stats");

stats.func1、stats.func2 で func1 と func2 を取得できるはずですよね?

まあ、私はできません。統計オブジェクトは空です。stats.js のいくつかのトレースにより、「this」も空のオブジェクトであることが明らかになりました。

何を与える?

4

2 に答える 2

1

まずはこちらのリンクをご覧ください。

コードを見てみましょう -

    var stats = require("./stats");
    //My steps - 

    //First Log
    console.log(stats.func1); // returns undefined
    //Second Log
    console.log(global.func1, global === GLOBAL); // returns [Function], true

このコードから
のヒント - 1. ブラウザーでは、グローバル オブジェクトはwindowobject です。
2. node.js ではglobalオブジェクトです。
3. モジュールで何かを使用 して定義すると、スコープvarを持つ変数のみが作成されます。 4.キーワードなしで何かを定義すると、グローバル スコープに変数が作成されます。module
var

したがってfunc1、 とfunc2はグローバル スコープで定義されていました。これをmodule.exportsに渡すと、現在のモジュール オブジェクトのみが渡されます。

お役に立てば幸いです。コーディングをお楽しみください。

于 2013-09-05T17:31:19.650 に答える