Изисква ли се промяна на prototype.constructor на подклас в класическото наследяване

Прегледах следната статия в Mozilla JS Guide.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Examples

В примера, даден за Класическо наследяване с Object.create, не мога да разбера защо авторът е добавил следния ред (ред № 21):

Rectangle.prototype.constructor = Rectangle;

Изисква ли се за класическо наследяване? Моля, обосновете отговора си.


person shahalpk    schedule 15.09.2013    source източник


Отговори (1)


От издание 5.1 на ECMAScript-262, свойството конструктор е зададено само на функционални обекти, вижте 13.2 Създаване на функционални обекти (стъпка 17)

Никога не се чете, нито се използва от самия език.

В частност,

obj instanceof C

не използва свойството конструктор, нито го прави

C.prototype.isPrototypeOf(obj)

Така че, ако не го модифицирате и не използвате рамка, която го използва, можете да пренебрегнете свойството конструктор.

За допълнително четене вижте Какво става със свойството „constructor“

person Wolfgang Kuehn    schedule 15.09.2013