需要帮助理解JavaScript对象

And*_*ast 4 javascript object this

我试图在javascript中理解对象.这是代码:

var fn={};
var canvas;
var ctx;
fn.game=function(width,height,inSide,name){
    this.canvas2=document.getElementById(inSide).innerHTML = "<canvas id="+name+" style='width:"+width+";height:"+height+";'>Your browser does not support the Canvas Element.</canvas>";
    this.canvas=document.getElementById(name);
    this.ctx=this.canvas.getContext("2d");
    document.getElementById(inSide).style.width=width;
    document.getElementById(inSide).style.height=height;
    canvas=document.getElementById(name);
    ctx=this.canvas.getContext("2d");
    this.width=width;
    this.height=height;
    canvas.width=width;
    canvas.height=height;
    this.add={

    };
    this.add.state=function(name){
        this[name]=3;
    };
};


var game=new fn.game(640,480,"game","canvas");

game.addState("play");
Run Code Online (Sandbox Code Playgroud)

当我引用这个["name"]时,我试图将它引用到fn.game,但是这个dous不起作用,因为它引用了最本地的对象.关于如何做到这一点的任何想法?

top*_*man 5

正如你所说,它引用了最本地的对象,做你解释的:

...
fn.game=function(width,height,inSide,name){
    var that = this;//expose this of fn.game to this scope
    ...
    this.add={

    };
    this.add.state=function(name){
        that[name]=3;//access this of fn.game
    };
};
Run Code Online (Sandbox Code Playgroud)