“类”中的嵌套函数

时间:2012-08-11 13:41:59

标签: javascript oop

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 个答案:

答案 0 :(得分:1)

尝试使用:

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

答案 1 :(得分:1)

您需要先实例化Fruit。从我的控制台......

var f = new Fruits()
undefined
new f.Apple()
Fruits.Apple
new f.Apple().getColor()
"red"

答案 2 :(得分:1)

静态属性和实例属性之间存在很大差异。 当你宣称Apple是Fruit的一个实例属性时,你必须实现一个Fruit才能实现一个苹果,并且Apple的cronstructor将成为Fruit的一种方法。 如果你想要静态课,你必须做

function Fruits() {

};    Fruits.Apple = function(){

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

}; 

答案 3 :(得分: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());