3

さまざまな本を使って JavaScript について学んでいますが、return を正確にいつ使用するかについての適切な説明が見つからないことに気付きました。関数から値を返したいときに使用することは理解していますが、Javascript から次のような例があります: 良い部分:

var quo = function(status) {
    return {
        get_status: function() {
            return status;
        }
    };
};

var myQuo = quo("amazed");

document.writeln(myQuo.get_status());

引数としてすでに quo 関数でステータスを使用できるのに、ステータスを返さなければならないのはなぜですか? 言い換えれば、なぜ単純に

return {
    get_status: status;
}

うまくいかない?

次のページの別の例:

var add_the_handlers = function(nodes) {
    var helper = function(i) {
        return function(e) {
            alert(i);
        };
    };
    var i;
    for (i = 0; i<nodes.length; i+=1) {
        nodes[i].onclick = helper(i);
    }
};

単純に alert(i) を置くのではなく、関数内で alert(i) を返すのはなぜですか?

4

4 に答える 4

10
return {
    get_status: status
}

基になる値を返す関数である getter を定義しません。プロパティを定義するだけです。

あなたはそれを次のように使用します

var status = quo.get_status;

そして、どのユーザーもステータスを変更できます

quo.get_status = 'new status directly changed';

使う理由の一つ

return {
    get_status: function() {
        return status;
    }
};

statusプライベートにすることです:オブジェクトのユーザーはquoオブジェクトの内部statusプロパティを変更できずquo、それを読み取ることしかできません

var status = quo.get_status();
于 2013-07-27T15:20:13.770 に答える
1

この例で見られるのはクロージャーのデモ (を参照) であり、statusプライベート変数のようなオブジェクト内に保存されます。

于 2013-07-27T15:19:40.487 に答える