p5.j​​s - 何时使用var vs this.varName声明变量

时间:2017-06-03 07:42:41

标签: processing var p5.js

我还在搞清楚如何使用p5.js.在常规java中,您必须使用其数据类型ex来声明每个变量。 int foo = 0

在p5中,我知道您可以使用var foo,但您也可以使用this.foo声明变量。如果有人可以澄清何时适合使用var以及何时可以使用this,那将非常有用。

例如,如果我想在方法中声明变量,我应该使用var foo = thing还是可以使用this.foo = thing声明它?在声明全局变量或引用传递给方法的对象时,我应该使用什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,p5不是一种语言,它是一个Javascript库,你是用Javascript编写的,而不是p5。

提出您的问题,如果您想将某个函数用作数据类型,类似于java中的类,并希望其中的所有“实例”都有自己的不同变量,则使用this 。如果它们只是您在某种程度上使用的变量,但不需要特定于每个实例,或者如果该函数不是构造函数并且不能用作数据类型,那么您将只使用var然后

同样,javascript中没有类的东西,你必须编写所谓的构造函数来“模拟”一个java类,但要注意构造函数不应该返回任何东西。以下是java中的car类的示例:

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时有用的资源 -