JS中类的静态方法、静态变量、实例方法、实例变量是面向对象编程中常用的概念。下面会详细讲解它们的区别、用法和实例分析。
静态方法(Static method)
静态方法和类的实例无关,它属于类本身。可以通过类名调用,而不是通过实例调用。通常用于实现一些公共的、与实例无关的功能。
静态方法的定义方式是在类中使用 static
关键字定义。示例代码如下:
class MyClass {
static staticMethod() {
console.log('This is a static method.')
}
}
MyClass.staticMethod(); // 输出 'This is a static method.'
静态变量(Static variable)
与静态方法类似,静态变量也属于类本身。每个实例共享同一份静态变量,可以被所有实例共享和修改。通常用于存储公共的,与实例无关的数据。
静态变量的定义方式是在类中声明一个 static
关键字的属性。示例代码如下:
class MyClass {
static staticProperty = 'This is a static property.'
constructor() {
console.log(MyClass.staticProperty)
}
}
new MyClass() // 输出 'This is a static property.'
new MyClass() // 输出 'This is a static property.',两次输出结果一样
实例方法(Instance method)
实例方法是属于实例的方法,在实例化后才能使用。可以访问实例的属性和方法,也可以访问类的静态属性和方法。
实例方法的定义方式是在类中定义一个普通的方法。示例代码如下:
class MyClass {
instanceMethod() {
console.log(`This is a instance method. The value of myProperty is ${this.myProperty}.`)
}
}
const myInstance = new MyClass()
myInstance.myProperty = 'foo'
myInstance.instanceMethod() // 输出:This is a instance method. The value of myProperty is foo.
实例变量(Instance variable)
实例变量与实例方法类似,是指实例所拥有的属性,只能被实例自身使用,不能被类或其他实例访问。通常用于存储对象的状态。
实例变量的定义方式是在类的构造函数中为 this
对象添加变量。示例代码如下:
class MyClass {
constructor() {
this.myProperty = 'This is a instance property.'
}
}
const myInstance = new MyClass()
console.log(myInstance.myProperty) // 输出:This is a instance property.
示例分析
下面是一个示例,综合使用了上述四种成员:
class Calculator {
static PI = 3.14159;
add(a, b) {
return a + b;
}
static multiply(a, b) {
return a * b;
}
constructor() {
this.result = 0;
}
getResult() {
return this.result;
}
setResult(value) {
this.result = value;
}
addResult(value) {
this.result += value;
}
}
const calculator = new Calculator();
calculator.setResult(10);
calculator.addResult(5);
console.log(calculator.getResult()); // 输出:15
console.log(Calculator.PI); // 输出:3.14159
console.log(Calculator.multiply(2, 3)); // 输出:6
上述代码定义了一个 Calculator
类,包含了一个保存计算结果的实例变量 result
,以及一个修改计算结果的实例方法 addResult
。还包含了一个静态变量 PI
,表示圆周率。静态方法 multiply
实现了两个数的乘法。
通过实例对象 calculator
可以修改和访问 result
的值。通过类名 Calculator
和静态方法名 multiply
可以进行两数乘法计算,而不需要实例化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析 - Python技术站