JavaScript是一门支持面向对象编程的语言,它的面向对象编程可以通过构造函数、原型、类等方式实现。
构造函数是一种特殊的函数,用于创建对象并初始化对象的属性和方法。在JavaScript中,构造函数的命名一般以大写字母开头,以便于区分普通函数。
function Person(name, age) {
this.name = name;
this.age = age;
}
var person1 = new Person('Tom', 20);
console.log(person1.name); // 输出Tom
console.log(person1.age); // 输出20
JavaScript中的每个对象都有一个原型对象,原型对象包含了对象的属性和方法。当我们访问一个对象的属性或方法时,如果对象本身没有这个属性或方法,就会去它的原型对象中查找。
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
var person1 = new Person('Tom', 20);
person1.sayHello(); // 输出Hello, my name is Tom
ES6引入了class关键字,使得JavaScript也可以像其他面向对象语言一样使用类来创建对象。类中可以定义构造函数、属性和方法。
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log('Hello, my name is ' + this.name);
}
}
let person1 = new Person('Tom', 20);
person1.sayHello(); // 输出Hello, my name is Tom