程序原型代码是指一个函数或类的原始代码,它定义了该函数或类的结构和行为。在JavaScript中,每个函数都有一个原型对象(prototype),该对象包含可以被该函数创建的所有实例共享的属性和方法。
```javascript
function Person() {}
console.log(Person); // 打印声明的函数Person
// ƒ Person () {}
console.log(Person.prototype); // 打印声明的函数Person的原型,其实也就是原型对象
// {constructor: ƒ}
```
在这个例子中,`Person` 是一个构造函数,用于创建 `Person` 类型的实例。`Person.prototype` 是 `Person` 函数的原型对象,它包含一个 `constructor` 属性,该属性指向 `Person` 函数本身。
原型对象的主要作用是提供一种共享属性和方法的方式,这样所有通过 `Person` 函数创建的实例都可以访问这些共享的属性和方法,而不需要在每个实例中单独定义它们。
例如,你可以在 `Person.prototype` 上添加一个方法:
```javascript
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name);
};
```
然后,所有通过 `Person` 函数创建的实例都可以访问这个方法:
```javascript
const person1 = new Person();
const person2 = new Person();
person1.name = "Alice";
person2.name = "Bob";
person1.sayHello(); // 输出: Hello, my name is Alice
person2.sayHello(); // 输出: Hello, my name is Bob
```
通过这种方式,你可以确保所有实例都共享相同的方法,从而节省内存并提高性能。