в чем разница между object create() и new function() при создании объектов в javascript
Object.create()
— тот метод создает новый объект с указанным прототипом. При использовании Object.create()
мы передаем прототип, который будет использоваться для создания нового объекта. Прототип объекта определяет свойства и методы, которые будут унаследованы новым объектом. Применение Object.create()
позволяет создать объект с определенным прототипом без необходимости использования конструктора. Вот пример:
const personProto = {
greet() {
console.log(`Hello, my name is ${this.name}.`);
}
};
const person = Object.create(personProto);
person.name = 'Alice';
person.greet(); // Выведет: Hello, my name is Alice.
new function()
— при использовании ключевого слова new
с функцией-конструктором мы создаем новый объект на основе этой функции. Конструктор выполняется с помощью new
, и возвращается новый объект с унаследованным прототипом от функции-конструктора. Вот пример:
function personProto() {
this.greet = function() {
console.log(`Hello, my name is ${this.name}.`);
}
}
const person = new personProto();
person.name = 'Alice';
person.greet(); // Выведет: Hello, my name is Alice.
Таким образом, основное различие между Object.create()
и new function()
заключается в способе создания унаследованных объектов.