如何封装js属性和方法
时间: 2024-02-28 13:53:12 浏览: 62
封装 JavaScript 属性和方法的一种常见方式是使用对象字面量或构造函数。两种方式各有优缺点。
对象字面量方式:
```javascript
const obj = {
// 私有属性
_name: 'John',
// 公有属性
age: 25,
// 私有方法
_printName: function() {
console.log(this._name);
},
// 公有方法
printAge: function() {
console.log(this.age);
}
};
// 访问公有属性和方法
console.log(obj.age); // 25
obj.printAge(); // 25
// 访问私有属性和方法
console.log(obj._name); // John
obj._printName(); // John
```
构造函数方式:
```javascript
function Person(name, age) {
// 私有属性
let _name = name;
// 公有属性
this.age = age;
// 私有方法
function _printName() {
console.log(_name);
}
// 公有方法
this.printAge = function() {
console.log(this.age);
}
// 特权方法
this.printName = function() {
_printName();
}
}
const person = new Person('John', 25);
// 访问公有属性和方法
console.log(person.age); // 25
person.printAge(); // 25
// 访问私有属性和方法(无法直接访问,需要通过特权方法间接访问)
person.printName(); // John
```
使用构造函数的方式可以更好地实现私有属性和方法,但需要注意的是,每个实例对象的公有方法都是独立的,会占用更多的内存。而对象字面量方式则可以更轻松地创建公有属性和方法,但无法实现真正的私有属性和方法。
阅读全文