p5.js - 什么时候使用var声明变量vs this.varName

问题描述:

我还在搞清楚如何使用p5.js。在普通的java中,你必须使用它的数据类型ex来声明每个变量。 int foo = 0p5.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时发现有用的一些资源 -