sql >> データベース >  >> NoSQL >> MongoDB

function-yで定義する必要があるvar-aにアクセスするparameter-fct_xを受け入れるfunction-yの書き方は?

    私があなたの質問を正しく理解した場合、あなたは動的スコープ を探しています。 。 Javascriptは字句スコープであるため、変数をキャプチャするには、クロージャーがテキストでそのスコープ内にある必要があります。そうでなければ、これは不可能であり、例えば:

    のような多かれ少なかれ愚かなトリックを数えません。

    function makeClosure(context) {
        return function() {
            return context("a") + 1;
        };
    }
    
    function y(evalThis) {
        var a = 2;
    
        if(evalThis)
            return eval(evalThis);
    
        return makeClosure(y);
    }
    
    closure = y();
    document.write(closure()) // 3

    evalに頼らずにJavaScriptで動的スコープを実現することは可能ですか? 詳細な説明と例については。

    特にMongoDBの質問に関しては、純粋なJavaScriptでは、変数を関数のスコープに挿入することはできません(ここでも、evalを使用せずに)。ただし、Mongoのmap-reduceはJSではなくC ++で記述されており、スコープを任意の方法で操作できます。

    _scope->setFunction("emit", etc
    

    ソース を参照してください 。

    完全を期すために、evalの例を次に示します。 :

    function map(ary, fun) {
    
        // define some locals
        var LOCAL = 42;
    
        // re-evaluate the function within the scope
        eval("fun=" + fun);
    
        // now fun sees our locals
        return ary.map(fun);
    }
    
    document.write(
        map([1,2,3], function(x) { return x * LOCAL }) // [ 42, 84, 126 ]
    )


    1. MongoDB-埋め込みドキュメントのリストの$addToSet

    2. CPUが100%のときにRedisのパフォーマンスを向上させる方法は?シャーディング?最速の.Netクライアント?

    3. 基本的なHTMLビューをレンダリングしますか?

    4. mongodbサーバーへの接続中に次のエラーが発生します