1

私は本当にこれをしたいです:

var Html = function() {
    alert('internal: ' + this.val);
};
Html.val = "x";
alert('external: ' + Html.val);
Html();

しかし、うまくいきません。なぜ?作成後に設定された値を関数コードで確認するにはどうすればよいですか?

- アップデート -

私の元の投稿はその意図があまり明確ではなく、ここに他の投稿者よりも意図に近い解決策を投稿したため、私が欲しかったのは後で独立して動作を変更するためにシードできるジェネリック関数を作成できるという明確な目的を持つ関数

4

3 に答える 3

0

時間をかけて精巧な回答を投稿していただきありがとうございます。お二人ともありがとうポイントを獲得しました。

将来これに苦しむかもしれない貧しい人々のために、私は自分の質問に答えるつもりです...私がやりたかったことは、以下に示すように最もよく達成されます私の意図は):

function fn() {
    this.val = "x";
    this.show = function() {
        alert("internal = " + this.val);
    };
    return this;
};

var x = fn();
alert("initial = " + x.val);
x.val = "y";
alert("reset = " + x.val);
x.show();

ここから、関数の内部変数に外部からアクセスできることがわかります。これにより、関数を作成し、その後、作成中にパラメーターを渡すことなく、関数を使用するために一連のデータをロードできます (これは、関数が実際に (作成されたのではなく) 呼び出されたときに、パラメータのセットが異なります)

于 2013-08-31T21:15:09.323 に答える