JS类的封装是指通过将变量和操作封装在一个类中,来实现对变量及操作的保护和控制。类的封装可以提高代码的复用性,可读性和可维护性。
以下是JS类的封装及实现代码的步骤:
1. 设计类的结构
在设计类的结构时,需要考虑类的成员变量和方法,及它们的访问权限。
class MyClass {
constructor(prop1, prop2) {
this._prop1 = prop1;
this._prop2 = prop2;
}
get prop1() {
return this._prop1;
}
set prop1(value) {
this._prop1 = value;
}
get prop2() {
return this._prop2;
}
set prop2(value) {
this._prop2 = value;
}
method1() {
console.log('This is method1');
}
method2() {
console.log('This is method2');
}
}
在上述代码中,我们定义了一个名为MyClass的类,类中包含了两个属性prop1和prop2,并且使用get和set方法对其进行了封装,以保证类成员的可控性。我们还定义了名为method1和method2的两个函数。
2. 实例化类
通过使用new关键字和构造器来实例化一个类。
let myObject = new MyClass('val1', 'val2');
在上述代码中,我们通过new关键字和构造器创建了一个名为myObject的对象,并传入两个参数'val1'和'val2'。
3. 调用类的方法和属性
通过使用实例对象来调用类的方法和属性。
myObject.method1();
console.log(myObject.prop1);
在上述代码中,我们通过myObject对象调用了类的method1方法,并且打印了prop1属性。
4. 示例1: 创建一个Person类
下面是一个Person类的实现代码:
class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
get name() {
return this._name;
}
set name(value) {
this._name = value;
}
get age() {
return this._age;
}
set age(value) {
if (value < 0 || value > 150) {
console.log('Invalid age');
return;
}
this._age = value;
}
greet() {
console.log(`Hello, my name is ${this._name} and I'm ${this._age} years old`);
}
}
let person = new Person('John', 25);
person.greet(); //输出:Hello, my name is John and I'm 25 years old
person.age = 200; //输出:Invalid age
在上述代码中,我们创建了一个名为Person的类,并封装了它的成员变量name和age,以及两个操作get和set。我们还定义了一个greet方法来打招呼。
5. 示例2: 创建一个Stack类
下面是一个Stack类的实现代码:
class Stack {
constructor() {
this._items = [];
}
push(item) {
this._items.push(item);
}
pop() {
return this._items.pop();
}
peek() {
return this._items[this._items.length - 1];
}
isEmpty() {
return this._items.length == 0;
}
size() {
return this._items.length;
}
}
let stack = new Stack();
stack.push(10);
stack.push(20);
stack.push(30);
console.log(stack.size()); //输出:3
console.log(stack.peek()); //输出:30
stack.pop();
console.log(stack.size()); //输出:2
在上述代码中,我们创建了一个名为Stack的类,并封装了它的操作push、pop、peek、isEmpty和size。我们还实例化了一个stack对象,然后依次压入三个数值,并对其进行了peek和pop操作,检查这些操作的结果是否符合预期。
通过上述例子和步骤,我们可以看到封装类的好处以及如何实现一个合适的封装。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS类的封装及实现代码 - Python技术站