为什么这个循环功能每次都在 javaScript return 0 中?我如何在 python 中做类似的事情?
Why doesn't this cycling function in javaScript return 0 every time? How would I do something similar in python?
我是编程新手,在了解了一些 Python 之后正在学习一些 javaScript。我正在使用 javaScript 来控制移动 AR 应用程序中的元素,并且我创建了一个非常简单的循环器功能,它完全按照我想要的方式工作,但老实说,我正在尝试理解它为什么起作用!我想要一个在每次点击时循环 1、2、3 的功能。第一次点击将 return '1',第二次点击 '2',第三次点击 '3',然后在其他点击上重复此序列。这是我经过大量试验、错误和谷歌搜索后得出的结论:
const cycler = {
current: -1,
cycle: function() {
if (cycler.current == 3) {
cycler.current = 0;
} else {
cycler.current++;
}
console.log(cycler.current);
}
}
cycler.cycle()
cycler.cycle()
cycler.cycle()
cycler.cycle()
cycler.cycle()
在点击事件中,我调用 cycler.cycle();它有效...returning 1,2,3,1,2,3,etc.对应于我的点击...但我不明白为什么每次点击时它不只是 return 0。为什么每次我调用它时 'current' 都不会重置为“-1”?我如何在 python 中做类似的事情?我怎么看这个?感谢您的任何见解!
当在内存中创建对象时,它会将初始当前值设置为 -1,除非对象被删除并在内存中重新创建,否则该值将是您上次设置的值。
您的 cycler
是 javascript 中的对象字面量。
它有一个 属性、current
和一个方法 cycle
。
调用方法不会重新创建对象,它只是运行函数。
如您所知,该函数只是增加 current
属性 的值(除非当前值为 3
,当然,在这种情况下它会将值重置为 0
.)
在 python 中,您可以创建一个 class 来创建一个计数器对象。它的构造函数将包含与您在此处创建的对象非常相似的代码。
如果您继续从 class 创建新实例并在每个实例上调用一次 .cycle
,您的日志将包含一堆 0
,正如您所期望的那样。
但是,如果您在同一个实例上重复调用 .cycle
,您将获得此处发现的行为。
我是编程新手,在了解了一些 Python 之后正在学习一些 javaScript。我正在使用 javaScript 来控制移动 AR 应用程序中的元素,并且我创建了一个非常简单的循环器功能,它完全按照我想要的方式工作,但老实说,我正在尝试理解它为什么起作用!我想要一个在每次点击时循环 1、2、3 的功能。第一次点击将 return '1',第二次点击 '2',第三次点击 '3',然后在其他点击上重复此序列。这是我经过大量试验、错误和谷歌搜索后得出的结论:
const cycler = {
current: -1,
cycle: function() {
if (cycler.current == 3) {
cycler.current = 0;
} else {
cycler.current++;
}
console.log(cycler.current);
}
}
cycler.cycle()
cycler.cycle()
cycler.cycle()
cycler.cycle()
cycler.cycle()
在点击事件中,我调用 cycler.cycle();它有效...returning 1,2,3,1,2,3,etc.对应于我的点击...但我不明白为什么每次点击时它不只是 return 0。为什么每次我调用它时 'current' 都不会重置为“-1”?我如何在 python 中做类似的事情?我怎么看这个?感谢您的任何见解!
当在内存中创建对象时,它会将初始当前值设置为 -1,除非对象被删除并在内存中重新创建,否则该值将是您上次设置的值。
您的 cycler
是 javascript 中的对象字面量。
它有一个 属性、current
和一个方法 cycle
。
调用方法不会重新创建对象,它只是运行函数。
如您所知,该函数只是增加 current
属性 的值(除非当前值为 3
,当然,在这种情况下它会将值重置为 0
.)
在 python 中,您可以创建一个 class 来创建一个计数器对象。它的构造函数将包含与您在此处创建的对象非常相似的代码。
如果您继续从 class 创建新实例并在每个实例上调用一次 .cycle
,您的日志将包含一堆 0
,正如您所期望的那样。
但是,如果您在同一个实例上重复调用 .cycle
,您将获得此处发现的行为。