我来为您讲解一下Javascript 构造函数、公有、私有特权和静态成员定义方法的完整攻略。
Javascript构造函数
Javascript中的构造函数是用于创建对象的函数,它可以通过new
关键字来创建新的对象。构造函数可以在对象的初始化过程中指定属性和方法。
构造函数的命名约定通常是大写字母开头的函数名,以示其与普通函数不同。
以下是一个简单的构造函数示例代码:
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = new Person('Tom', 18);
console.log(person1.name); // 'Tom'
console.log(person1.age); // 18
上面代码中,Person是一个构造函数,它接收name和age两个参数,然后创建一个包含这两个属性的对象person1。
公有、私有特权和静态成员
在构造函数中定义的属性和方法有三种类型:公有、私有特权和静态成员。
- 公有属性/方法:可以从外部访问的属性和方法。
- 私有特权属性/方法:只能在构造函数中使用,但可以使用公有方法访问。
- 静态成员:在构造函数中定义的,但是不需要实例化对象就可以访问的属性和方法。
以下是它们的详细讲解:
公有属性/方法
公有属性和方法是可以从外部访问的属性和方法。它们通常是作为对象的接口使用,提供给外部使用。
以下是一个简单的示例代码:
function Dog(name) {
this.name = name; // 公有属性
}
Dog.prototype.bark = function() { // 公有方法
console.log(`${this.name} is barking!`);
};
const dog1 = new Dog('小白');
dog1.bark(); // "小白 is barking!"
console.log(dog1.name); // "小白"
上面代码中,bark方法和name属性都是公有的,可以从外部直接访问。bark方法被添加到了构造函数的原型上,所有通过该构造函数创建的对象实例都可以直接访问到该方法。
私有特权属性/方法
私有特权属性/方法只能在构造函数中使用,但可以通过在原型上定义公有方法使得外部也可以访问。
以下是一个简单的示例代码:
function Cat(name) {
const mood = 'happy'; // 私有特权属性
this.getName = function() { // 私有特权方法
return name;
};
this.getMood = function() { // 公有方法
return mood;
};
}
const cat1 = new Cat('咪咪');
console.log(cat1.getName()); // "咪咪"
console.log(cat1.getMood()); // "happy"
console.log(cat1.mood); // undefined
上面代码中,mood属性和getMood方法是私有特权的,只能在构造函数中使用,但getName方法是公有的,可以从外部访问。在getName方法中,可以访问私有变量name,因为它作为闭包被绑定到getName函数中。
静态成员
静态成员是在构造函数中定义的,但不需要实例化对象就可以访问的属性和方法。
以下是一个简单的示例代码:
function MathUtil() {}
MathUtil.PI = 3.14159265358979323846; // 静态成员属性
MathUtil.add = function(a, b) { // 静态成员方法
return a + b;
};
console.log(MathUtil.PI); // 3.141592653589793
console.log(MathUtil.add(1, 2)); // 3
上面代码中,PI属性和add方法都是静态成员,可以直接通过构造函数访问。
这就是Javascript 构造函数、公有、私有特权和静态成员的完整攻略。希望对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 构造函数,公有,私有特权和静态成员定义方法 - Python技术站