up
This commit is contained in:
parent
f99574f53b
commit
b0976b5253
153 changed files with 590 additions and 533 deletions
|
@ -1,24 +0,0 @@
|
|||
**Нет, не распознает, выведет `false`.**
|
||||
|
||||
Свойство `constructor` содержится в `prototype` функции по умолчанию, интерпретатор не поддерживает его корректность. Посмотрим, чему оно равно и откуда оно будет взято в данном случае.
|
||||
|
||||
Порядок поиска свойства `rabbit.constructor`, по цепочке прототипов:
|
||||
|
||||
1. `rabbit` -- это пустой объект, в нём нет.
|
||||
2. `Rabbit.prototype` -- в него при помощи `Object.create` записан пустой объект, наследующий от `Animal.prototype`. Поэтому `constructor'а` в нём также нет.
|
||||
3. `Animal.prototype` -- у функции `Animal` свойство `prototype` никто не менял. Поэтому оно содержит `Animal.prototype.constructor == Animal`.
|
||||
|
||||
```js run
|
||||
function Animal() {}
|
||||
|
||||
function Rabbit() {}
|
||||
Rabbit.prototype = Object.create(Animal.prototype);
|
||||
|
||||
var rabbit = new Rabbit();
|
||||
|
||||
*!*
|
||||
alert( rabbit.constructor == Rabbit ); // false
|
||||
alert( rabbit.constructor == Animal ); // true
|
||||
*/!*
|
||||
```
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue