Как установить прототип пользовательского объекта для объекта того же типа? - PullRequest
0 голосов
/ 05 апреля 2020

В следующем коде я создал два объекта, один из которых имеет тип String , а другой - Person .

Как установить прототип Персона , к объекту того же типа. Так же, как встроенный String Object.

/* constructor function */

function Person(fullname) {
    this.fullname = fullname;
}
Person.prototype.getFullName = function() {
    return this.fullname;
}
var john = new Person("John");

var str  = new String("Hi");


console.log(john.__proto__); /* {...} */
console.log(str.__proto__);  /* String {...} */

1 Ответ

0 голосов
/ 05 апреля 2020

Прототип устанавливается для типа, и любой экземпляр этого типа будет использовать прототип совместно. Из примера кода я предполагаю, что консольная регистрация объекта __proto__ - это то, что сбивает с толку. Посмотрите на странице MDN __proto__ , почему вы не должны использовать это.

Чтобы проверить тип объекта, вы можете использовать один из следующих способов:

// With the following you will get the name of the class
console.log(john.constructor.name) // Log: Person

// With the following you will can check if the object is of a certain type.
console.log(john instanceof Person) // Log: true

Вы, кажется, используете более старые функции JavaScript. Имейте в виду, что JavaScript имеет переменные области видимости блока ( let и const ) и классы (они используют прототип под капотом).

...