p5.js - 什么时候使用var声明变量vs this.varName
我还在搞清楚如何使用p5.js。在普通的java中,你必须使用它的数据类型ex来声明每个变量。 int foo = 0
。p5.js - 什么时候使用var声明变量vs this.varName
在p5中,我知道您可以使用var foo
,但您也可以使用this.foo
声明变量。如果有人可以澄清什么时候适合使用var
,何时我可以使用this
,那会非常有帮助。
例如,如果我想声明一个方法内的变量,我应该使用var foo = thing
还是我可以使用this.foo = thing
来声明它?在声明全局变量或引用传入方法的对象时应该使用什么?
谢谢!
首先,p5不是一种语言,它是一个Javascript库,您使用Javascript编码,而不是p5。
回到你的问题,如果你想使用一些函数作为数据类型,类似于java中的类,并且希望所有的“实例”具有自己的不同变量,那么使用this
。如果它们只是您在某些方面使用的变量,但不需要针对每个实例都具体指定,或者如果函数不是构造函数并且不能用作数据类型,那么您只需使用var
。
再一次,在JavaScript中没有类的东西,你将不得不编写所谓的构造函数来模拟一个java类,但要知道构造函数不应该返回任何东西。这里是car
类Java中的例子:
class car {
int speed = ___;
String model = ___;
static int numOfWheels = ___;
}
这是它的样子在JavaScript(构造函数):
function car() {
this.speed = ____;
this.model = ____;
var numOfWheels = ___;
}
如果声明没有this
一个变量,它可以是大致与Java类中的静态变量进行比较,因为它将在所有实例中保持不变。
所以基本上,至少在大多数情况下,您通常会在构造函数中使用this.varName
,即您将用于构造对象的函数。
在声明全局变量或引用传入方法的对象时应该使用什么?
全局变量几乎总是var something = something
。当提到传入函数的对象时,只需使用点符号来引用它的属性,如passedObject.someProperty
我建议您在直接跳入p5之前学习Javascript,以下是我在开始学习Javascript时发现有用的一些资源 -