Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象作为参数处理_Javascript_Oop_Javascript Objects - Fatal编程技术网

Javascript对象作为参数处理

Javascript对象作为参数处理,javascript,oop,javascript-objects,Javascript,Oop,Javascript Objects,我有两个Javascript对象,Limits和Wind,并试图在一个对象上调用函数,该对象是另一个对象的参数。从未调用此警报,并且控制台中没有错误。我这样做对吗 var Limits = { minx: 0, miny: 0, SetMaxLimits: function (x1, x2, y1, y2, zoom) { alert('j'); } }; var Wind = { Data : Limits, Scre

我有两个Javascript对象,Limits和Wind,并试图在一个对象上调用函数,该对象是另一个对象的参数。从未调用此警报,并且控制台中没有错误。我这样做对吗

var Limits = {
    minx: 0,
    miny: 0,

    SetMaxLimits: function (x1, x2, y1, y2, zoom) {
        alert('j');
    }
};


var Wind = {
    Data    : Limits,
    Screen  : Limits,
    Rotation: 0,
    CanvasW : 0,
    CanvasH : 0,
    North   : true,
    _Math   : true,

    NormalLimits: function (x,y) {
        Data.SetMaxlimits(0, 0, 0, 0, 0);
    }
};

Wind.NormalLimits(0,0);
您有一个输入错误,它是SetMaxLimits,而不是SetMaxLimits,并且您必须引用Data方法是其属性的对象,在本例中,这可能是通过此操作完成的,具体取决于调用函数的方式

var Limits = {
    minx: 0,
    miny: 0,

    SetMaxLimits: function (x1, x2, y1, y2, zoom) {
        alert('j');
    }
};


var Wind = {
    Data    : Limits,
    Screen  : Limits,
    Rotation: 0,
    CanvasW : 0,
    CanvasH : 0,
    North   : true,
    _Math   : true,

    NormalLimits: function () {
        this.Data.SetMaxLimits(0, 0, 0, 0, 0);
    }
};

Wind.NormalLimits();
您有一个输入错误,它是SetMaxLimits,而不是SetMaxLimits,并且您必须引用Data方法是其属性的对象,在本例中,这可能是通过此操作完成的,具体取决于调用函数的方式

var Limits = {
    minx: 0,
    miny: 0,

    SetMaxLimits: function (x1, x2, y1, y2, zoom) {
        alert('j');
    }
};


var Wind = {
    Data    : Limits,
    Screen  : Limits,
    Rotation: 0,
    CanvasW : 0,
    CanvasH : 0,
    North   : true,
    _Math   : true,

    NormalLimits: function () {
        this.Data.SetMaxLimits(0, 0, 0, 0, 0);
    }
};

Wind.NormalLimits();

这是范围界定问题。您正在尝试访问数据,在NoarmaLimits函数的上下文中无法访问该数据。如果您通过Wind对象访问它,尽管它会工作

var Wind = {
    Data    : Limits,
    Screen  : Limits,
    Rotation: 0,
    CanvasW : 0,
    CanvasH : 0,
    North   : true,
    _Math   : true,

    NormalLimits: function () {
        Wind.Data.SetMaxLimits(0, 0, 0, 0, 0);
    }
};

这是范围界定问题。您正在尝试访问数据,在NoarmaLimits函数的上下文中无法访问该数据。如果您通过Wind对象访问它,尽管它会工作

var Wind = {
    Data    : Limits,
    Screen  : Limits,
    Rotation: 0,
    CanvasW : 0,
    CanvasH : 0,
    North   : true,
    _Math   : true,

    NormalLimits: function () {
        Wind.Data.SetMaxLimits(0, 0, 0, 0, 0);
    }
};

控制台中肯定有错误…哇,就是这个类型。我要我把它修好。为大家干杯。控制台中肯定有一个错误…哇,这就是类型。我要我把它修好。为大家干杯。我们不是渴望不区分大小写的标识符吗:@xtofl-不,我们不是,区分大小写很适合我!我们不是渴望不区分大小写的标识符:@xtofl-不,我们不是,区分大小写很适合我!看到风,我很惊讶。数据。。。。。但实际上它比这更安全。数据。。。。在@adeno的回答中,@xtofl-这并不安全,在文本中直接以名称引用文本实际上有点不好。当使用此作为引用时,必须了解调用函数的上下文,以及它实际具有的值,但在大多数情况下,它将是对象文字,除非为此应用、调用等使用不同的值进行特别调用。在我看来,在遵循原型模式时,最好使用此关键字。在所有其他情况下,我都会避免使用这个。我很惊讶地看到风。数据。。。。。但实际上它比这更安全。数据。。。。在@adeno的回答中,@xtofl-这并不安全,在文本中直接以名称引用文本实际上有点不好。当使用此作为引用时,必须了解调用函数的上下文,以及它实际具有的值,但在大多数情况下,它将是对象文字,除非为此应用、调用等使用不同的值进行特别调用。在我看来,在遵循原型模式时,最好使用此关键字。在所有其他情况下,我都会避免使用这个。