试着给这个加10.y变量,但返回NaN
Trying to add 10 to this.y variable, but returns NaN
我似乎做错了什么,找不到任何解决方案。我试图将它们转换成数字并尝试+=,但我得到NaN。
function circle() {
this.x = 60;
this.y = 200;
this.draw = function() {
ellipse(this.x, this.y, 20, "green");
};
this.move = function() {
$(document).keydown(function(e) {
// console.log(e.keyCode);
if (e.keyCode === 68) {
this.y += 1;
console.log(this.y);
}
});
};
}
可能是因为它们不是变量吗?
谢谢:)
这是因为keydown回调中的this
不是您所期望的。
一种解决方法是将外作用域的this
保存到变量中。
var me = this;
me.x = 60;
me.y = 200;
....
me.y += 1; //use me istead of this.
console.log(me.y);
另一种方法是使用es6 lambas,因为它将绑定作用域。
$(document).keydown(e => {//lamba instead of function
if (e.keyCode === 68) {
this.y += 1;
console.log(this.y);
}
});
也可以使用bind
函数绑定作用域。
$(document).keydown((function(e) {//lamba instead of function
if (e.keyCode === 68) {
this.y += 1;
console.log(this.y);
}
}).bind(this));
相关文章:
- JS变量返回的对象不是值
- 存储区向变量返回了结果
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- PHP 函数不会向 JavaScript 变量返回值
- 当尝试使用ajax读取文件时,变量返回undefined
- Protractor-分配给element.all.locator.count的变量返回NaN why
- 范围变量返回长度错误
- 当chrome检查器为jQuery变量返回[object object]时,如何返回实际数据
- jQuery - img src 中的变量返回未定义
- 在angular.extend()中向变量返回一个承诺的值
- 循环遍历 HTML 内容并将值作为全局变量返回
- 为什么我的 JavaScript 提升的局部变量返回未定义,但提升的全局变量返回空白
- 解析 HTML 文件并将值作为 php 变量返回
- 提醒变量返回“未定义”
- 将一个函数中的局部变量返回给另一个函数
- PHP 将变量返回给外部 JavaScript
- 获取 JS 中的下拉变量返回未定义
- 使用 promise 将异步函数的结果作为“变量”返回
- 条件返回或单变量返回
- Meteor find使用变量返回null