Javascript对象作为参数处理
我有两个Javascript对象,Limits和Wind,并试图在一个对象上调用函数,该对象是另一个对象的参数。从未调用此警报,并且控制台中没有错误。我这样做对吗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
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-这并不安全,在文本中直接以名称引用文本实际上有点不好。当使用此作为引用时,必须了解调用函数的上下文,以及它实际具有的值,但在大多数情况下,它将是对象文字,除非为此应用、调用等使用不同的值进行特别调用。在我看来,在遵循原型模式时,最好使用此关键字。在所有其他情况下,我都会避免使用这个。