无法从JavaScript中的函数调用对象属性
Unable to call object properties from functions in JavaScript
我是JavaScript新手,想创建一个简单的乒乓球游戏来练习。我可以很容易地在画布上绘制游戏区域,但现在当我尝试绘制蝙蝠时出现了一些问题。
我创建了一个带有一些属性的playerBat对象。
var playerBat = {
batWidth:20,
batHeight:100,
x:10,
y:(height/2)-(batHeight/2),
spdY:10
};
然后在函数"drawPlayerBat"中,我简单地用这些属性作为参数绘制了一个矩形。
function drawPlayerBat() {
ctx.fillStyle = "white";
ctx.fillRect(playerBat.x, playerBat.y, playerBat.x+playerBat.batWidth, playerBat.y+playerBat.batHeight);
};
但它不起作用!控制台显示"无法获取未定义或null引用的属性'x'"。我是否在语法上犯了任何错误,或者这样做是不可能的?
这是整个代码。。。http://codepen.io/anon/pen/YqgVog?editors=1010
任何帮助都将不胜感激。谢谢
简单修复:
真的没有理由打电话给
y:(height/2)-(batHeight/2),
因为你在它上面两行定义了batHeight。它不会动态运行——一旦你设置了它,当batHeight
改变时它不会改变,它将保持不变。
知道batHeight
的值,你可以简单地说
y:(height/2)-(50),
您可能想要什么答案:
如果问题是关于JavaScript中的自引用,那么答案是在对象内部设置函数内部的值,并在声明后对其进行初始化。例如:
var playerBat = {
batWidth: 20,
batHeight: 100,
x: 10,
spdY:10,
init: function(){
this.y = (height/2)-(this.batHeight/2);
return this;
}
}.init();
您需要删除batHeight。像下面这样做。
var playerBat = {
batWidth:20,
batHeight:100,
x:10,
y:(height/2)-(100/2),
spdY:10
};
相关文章:
- 无法从JavaScript中的函数调用对象属性
- 在Javascript中调用对象方法时不是函数类型错误
- 向调用全局javascript函数的对象添加处理程序
- 正在调用对象中设置的匿名函数,但未得到预期结果
- 为什么需要“this”来调用对象内部的函数
- 在异步函数调用过程中,当对象的属性值发生变化时,JavaScript中的对象属性值会发生什么变化
- 在javascript中调用构造函数中函数的对象
- 如何从onClick事件调用对象函数
- 是否可以在不加对象名称前缀的情况下调用对象的函数
- 可以't获取具有“t”的对象变量;这个“;由setTimeout()函数调用的对象函数中的属性
- 如何使对象可以作为实例和函数调用
- 将变量添加到对象函数调用的末尾
- 获取调用属于其属性或名称空间原型之一的函数的对象
- 使用函数调用模式扩展对象.怎样
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- 从函数调用全局对象的方法
- JavaScript:动态调用对象内的函数
- 在 javascript 中从函数设置对象的值,而无需调用该函数
- Javascript:在函数调用对象时从数组中删除对象
- 函数调用对象内的函数