2

JavaScript初心者のため、初歩的な質問で申し訳ありません。durandal、knockout js、breath js、sammy、require などのライブラリを使用する SPA の例を見て、JavaScript 言語を学ぼうとしてきました。また、Module パターンを使用しようとしています。次のように、さまざまなコード構文に出くわしました

define(['services/logger'], function (logger) {

    var model = "somedata"
    var vm = {
        activate: activate,
        title: 'Details View'
    };

    return vm;
    function activate() {
        logger.log('Details View Activated', null, 'details', true);
        return true;
    }
});

define(['services/logger'], function (logger) {

        var model = "somedata"

    return {
        activate: activate,
        title: 'Details View'
    };

    function activate() {
        logger.log('Details View Activated', null, 'details', true);
        return true;
    }
});

私の質問は

  1. 複数の構文を使用する利点はありますか?
  2. 上記のコード ブロックの変数「モデル」にはグローバル スコープがありますか?
  3. 関数内から「タイトル」変数にアクセスする最良の方法は何ですか? this.title を使用する必要がありますか?

前もって感謝します。

4

1 に答える 1

1
  1. 構文 2 の方が読みやすいです。それを変数に割り当ててすぐに返す代わりに、値を返すだけです。それ以外にメリットはありません。
  2. 「モデル」変数は、この特定のコンテキストで定義されているため、グローバル スコープを持ちません。
  3. 返されたオブジェクトで、objName.title によって title を呼び出します

これはあなたの質問に答えていますか?

于 2013-03-07T17:45:35.973 に答える