原型是否适用于工厂功能?

问题描述

function person(firstName,lastName) {
  return {
    firstName: firstName,lastName: lastName,};
}
person.prototype.displayFullName = function() {
  return this.firstName + " " + this.lastName;
};
let person1 = person("Virat","Kohli");
let person2 = person("Sachin","Tendulkar");
console.log(person1)
console.log(person1.displayFullName())
console.log(person2.displayFullName())

我们可以使用原型在工厂函数添加一个函数

解决方法

要进行构造函数调用,请使用 new 关键字。添加到绑定到 this 的对象的属性将由构造函数调用 new Person(..) 返回的对象访问。

function Person(firstName,lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

Person.prototype.fullName = function () {
  return this.firstName + ' ' + this.lastName;
};

let person1 = new Person('Virat','Kohli');
let person2 = new Person('Sachin','Tendulkar');

console.log(person1.fullName());
console.log(person2.fullName());