Javascript:在类中创建一个子类

时间:2015-07-30 23:02:14

标签: javascript class scope

我知道Javascript不支持类,所以我创建了一个Cube对象,然后声明了它的原型方法。在Cube内,我想创建一个flip对象,其中包含更多方法:

// Create Cube class
var Cube = function(){
    this.x = 0;
    this.y = 0;
    //...
}

// Add methods to Cube prototype
Cube.prototype = {
    initialize: function(){
        //...
    },

    // Adding sub-functions within flip
    flip: {
        start: function(){
            console.log(this.x); // This.x is undefined!
        },

        end: function(){
            console.log("Ending flip");
        }
    },

    getPos: function(){
        console.log(this.x); // Correctly outputs 0
    }

// Declare instance of Cube
var cubeInstance = new Cube();
cubeInstance.flip.start();

但是,我在this内的flip.start()范围错误,因为它会输出flip对象,而不是我想要的Cube对象:

Object { start: Cube.prototype.flip.start(), end: Cube.prototype.flip.end() }

您建议我这样做cubeInstance.flip.start();会触发start()方法,但我仍然可以访问Cube变量(即this.x和this.y)?

0 个答案:

没有答案