0
function Fruits() {

    this.Banana = function() {

        this.getColor = function(){
            return 'yellow';
        };

    };

    this.Apple= function() {

        this.getColor = function(){
            return 'red';
        };

    };
}

var apple = new Fruits.Apple();
console.log(apple.getColor());

これは機能しません。ここで何が恋しかったですか?これは、ネストされたメソッドを持つ「クラス」に対する間違ったアプローチですか?

ありがとう

4

4 に答える 4

1

使用してみてください:

var apple = new Fruits();
apple.Apple();
console.log(apple.getColor());
于 2012-08-11T13:46:52.960 に答える
1

最初にFruitsをインスタンス化する必要があります。私のコンソールから...

var f = new Fruits()
undefined
new f.Apple()
Fruits.Apple
new f.Apple().getColor()
"red"
于 2012-08-11T13:47:50.343 に答える
1

これは、静的プロパティとインスタンス プロパティの違いです。Apple を Fruits のインスタンス プロパティとして宣言したので、Apple をインスタンス化できるようにするには Fruit をインスタンス化する必要があり、Apple の cronstructor は Fruit のメソッドになります。静的クラスが必要な場合は、行う必要があります

function Fruits() {

}; Fruits.Apple= function() {

    this.getColor = function(){
        return 'red';
    };

}; 
于 2012-08-11T13:48:16.787 に答える
1

いくつかの好奇心:

var a = new new Fruits().Apple

ところで。たぶん、静的クラスのようなものを作成したかったのでしょうか?

var Fruits = {
    Apple:function() {

        this.getColor = function(){
            return 'red';
        };

    },
    Banana: function() {

        this.getColor = function(){
            return 'yellow';
        };
    }
}

それならうまくいくでしょう。

var apple = new Fruits.Apple();
console.log(apple.getColor());
于 2012-08-11T13:50:27.143 に答える