每个函数中都有个prototype
时间: 2024-03-01 15:55:53 浏览: 18
这个说法是正确的。在 JavaScript 中,每个函数对象都有一个 `prototype` 属性,该属性指向一个对象,称为原型对象。原型对象可以包含该函数对象的共享属性和方法,这些属性和方法可以被该函数的所有实例对象所共享。
例如:
```javascript
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
Person.prototype.fullName = function() {
return this.firstName + " " + this.lastName;
};
var person1 = new Person("John", "Doe");
var person2 = new Person("Jane", "Doe");
console.log(person1.fullName()); // 输出 "John Doe"
console.log(person2.fullName()); // 输出 "Jane Doe"
```
在上面的示例中,`Person` 函数通过 `this` 关键字给实例对象添加了 `firstName` 和 `lastName` 属性,而 `fullName()` 方法则通过 `prototype` 属性被添加到了 `Person` 函数的原型对象上。这样,`person1` 和 `person2` 两个实例对象都可以共享 `fullName()` 方法。
需要注意的是,原型对象的属性和方法只有在通过 `new` 关键字创建对象时才会被实例对象所共享。如果直接访问函数对象的原型对象,则无法访问到实例对象的属性和方法。