js如何改变一个function中的属性,使得后续new出来的对象发生改变
时间: 2024-01-21 16:18:52 浏览: 26
在 JavaScript 中,可以通过给对象的 function 添加属性来改变对象的属性。这样,新创建的对象就会带有新的属性。
例如,假设我们有以下代码:
```javascript
function Person(name, age) {
this.name = name;
this.age = age;
this.getInfo = function() {
console.log(this.name + " is " + this.age + " years old");
}
}
var p1 = new Person("John", 30);
p1.getInfo(); // 输出 "John is 30 years old"
```
现在,假设我们想要更改 `Person` 构造函数中 `getInfo` 方法的一些属性,以使得新创建的对象 `p2` 也受到更改的影响。我们可以这样做:
```javascript
Person.prototype.getInfo = function() {
console.log("This person's name is " + this.name + " and they are " + this.age + " years old");
}
var p2 = new Person("Jane", 25);
p2.getInfo(); // 输出 "This person's name is Jane and they are 25 years old"
```
通过这种方式,我们给 `Person` 函数添加了一个新的 `getInfo` 方法,但它与原来的方法不同。这个新方法会输出不同的信息。由于我们修改了 `Person` 的 prototype,因此新创建的对象 `p2` 也会受到更改的影响。