3

JavaScript でのオブジェクト指向プログラミングは初めてです。次のプログラムの何が問題なのかわかりません。

function Sample() {
    var data = "one";

    var getData = function () {
        return data;
    };

    this.getter = function () {
        getData();
    };
}

var s = new Sample;

alert(s.getter()); // alerts undefined

上記のプログラムは期待どおりに動作しませんが、次のプログラムは動作します。

function sample() {
    var data = "one";

    var getData = function () {
        return data;
    };

    this.getter = function () {
        return getData();
    };
}

var s = new Sample;

alert(s.getter()); // alerts "one"

なぜそうなのですか?

4

4 に答える 4

6

getterメソッドは呼び出し元に値を返さないため、使用する必要があります。

では 、値を返すメソッドをgetter呼び出していますが、その値は呼び出し元に送り返されませんgetDatadatagetter

this.getter = getData

また

this.getter = function () {return getData();}
于 2013-07-08T11:03:49.347 に答える
0

答えはあなたのコードだけにあります。最初のケースでは戻ってきません。戻ってこない場合、どのように警戒しますか。2 番目のスニペットはそれを修正します。

于 2013-07-08T11:04:21.210 に答える
0

getter最初のから何も返していませんsample。それがあなたが得ている理由ですundefined

于 2013-07-08T11:04:30.137 に答える