我正在开发一个程序,它有一个名为“player”的对象,它是从构造函数“snake”创建的。
var player = {
x: 0,
sayX: function() {
console.log(this.x);
}
}
该代码工作正常。但是,我想从另一个名为“ani”的对象访问“sayX”函数。
var ani = {
x: 10,
sayAll: function() {
console.log(this.x);
player.sayX();
}
}
当我尝试运行ani.sayAll时,sayX日志未定义,因为它使用了“this”,但我无法指定它引用的是哪个“this”。
有没有办法解决这个问题。
编辑: 实际上,整个代码都在另一个对象中。这会与它有关吗?
答案 0 :(得分:1)
sayX 返回未定义
该功能正常运行,但您无法在sayAll
内返回任何内容,因此返回 undefined
的原因。
var player = {
x: 0,
sayX: function() {
console.log(this.x);
return 'anything';
}
};
var ani = {
x: 10,
sayAll: function() {
console.log(this.x);
return player.sayX();
}
};
ani.sayAll(); // logs '10', then '0', and returns 'anything';
示例屏幕截图:
答案 1 :(得分:-1)
像这样制作'sayX'函数:
sayX: function() {
console.log(player.x);
}
并制作'sayAll'函数,如下所示:
sayAll: function() {
console.log(ani.x);
player.sayX();
}
这应该有效。