📜  JS++ |字段和方法(1)

📅  最后修改于: 2023-12-03 15:02:25.651000             🧑  作者: Mango

JS++ | 字段和方法

在JS++中定义类的方式与Java和C#类似,我们可以在类中定义字段和方法。字段是类的变量,而方法则是类的函数。下面将对JS++中的字段和方法进行介绍。

定义字段

在JS++中定义字段的方式与Java和C#相同,可以使用关键字varlet定义一个变量。

class Person {
  var name; // 字符串类型的字段
  var age; // 数值类型的字段
  var isMale; // 布尔类型的字段
}

这里定义了一个名为Person的类,其中包含了三个字段:nameageisMale。这些字段可以在类的任何方法中使用,如下所示:

class Person {
  var name;
  var age;
  var isMale;

  function printInfo() {
    console.log("Name: " + name);
    console.log("Age: " + age);
    console.log("Gender: " + (isMale ? "Male" : "Female"));
  }
}

var p = new Person();
p.name = "Tom";
p.age = 25;
p.isMale = true;
p.printInfo(); // 输出 Name: Tom, Age: 25, Gender: Male
定义方法

在JS++中定义方法的方式与函数相同,只不过它被定义在类中。下面是一个简单的例子:

class Person {
  var name;
  var age;
  var isMale;

  function printInfo() {
    console.log("Name: " + name);
    console.log("Age: " + age);
    console.log("Gender: " + (isMale ? "Male" : "Female"));
  }

  function increaseAge() {
    age++;
  }
}

var p = new Person();
p.age = 25;
console.log(p.age); // 输出 25
p.increaseAge();
console.log(p.age); // 输出 26

在这个例子中,我们定义了一个名为increaseAge的方法,它的作用是将age字段加1。我们可以在实例化一个Person对象后,使用increaseAge方法增加这个人的年龄。

访问器

JS++支持通过访问器访问字段,访问器是一种特殊的方法,当你尝试读取或设置一个字段时,它会被自动调用。使用访问器可以控制字段的读取和设置,例如可以在设置一个字段时进行校验。

class Person {
  var _name;
  var age;
  var isMale;

  function set name(value) {
    if (value.length < 2) {
      console.log("Name is too short!");
    } else {
      _name = value;
    }
  }

  function get name() {
    return _name;
  }

  function printInfo() {
    console.log("Name: " + _name);
    console.log("Age: " + age);
    console.log("Gender: " + (isMale ? "Male" : "Female"));
  }
}

var p = new Person();
p.name = "T"; // 输出 Name is too short!
p.name = "Tom";
p.age = 25;
p.isMale = true;
p.printInfo(); // 输出 Name: Tom, Age: 25, Gender: Male

在这个例子中,我们将name字段定义为_name,并使用setget关键字定义了读和写这个字段的访问器。在set访问器中,我们对传入的value进行了校验,如果不符合条件,则不设置_name的值。而get访问器则返回了_name的值。

总结

JS++中的字段和方法可以让我们更方便地对数据进行处理,并在必要时对数据进行校验和控制。访问器则可以让我们对字段的读写进行更精细的控制。