object.create和new的区别
时间: 2023-04-26 17:05:09 浏览: 136
`Object.create()` 和 `new` 是 JavaScript 中创建对象的两种不同方式。
`Object.create()` 方法创建一个新对象,并将其原型关联到指定的对象。这个方法允许在不调用构造函数的情况下创建一个对象。
`new` 操作符创建一个新对象并将其关联到构造函数的原型。它还会调用构造函数,并将新创建的对象传递给构造函数的 `this` 变量。
总的来说,`Object.create()` 更多用于原型继承,而 `new` 更多用于构造函数继承。
相关问题
new和object.create的区别
new和object.create都是创建对象的方法,但它们的区别在于:
1. new是基于构造函数创建对象的方法,即使用new关键字来创建一个对象实例。例如,我们可以通过new关键字创建一个Person对象:
```javascript
function Person(name, age) {
this.name = name;
this.age = age;
}
var john = new Person('John', 30);
```
2. object.create是基于原型创建对象的方法,即通过指定一个原型对象来创建一个新的对象实例。例如,我们可以通过Object.create方法创建一个Person对象:
```javascript
var personProto = {
age: 0,
greeting: function() {
console.log('Hello!');
}
};
var john = Object.create(personProto);
john.name = 'John';
john.age = 30;
```
因此,二者的区别在于对象的创建方式不同。new是基于构造函数的,而object.create是基于原型的。
Object.create
`Object.create()` 和 `new` 是 JavaScript 中创建对象的两种不同方式。
`Object.create()` 方法创建一个新对象,并将其原型关联到指定的对象。这个方法允许在不调用构造函数的情况下创建一个对象。
`new` 操作符创建一个新对象并将其关联到构造函数的原型。它还会调用构造函数,并将新创建的对象传递给构造函数的 `this` 变量。
总的来说,`Object.create()` 更多用于原型继承,而 `new` 更多用于构造函数继承。
阅读全文