игра брюс 2048
Главная / Программирование / Flash MX для профессиональных программистов / Тест 7

Flash MX для профессиональных программистов - тест 7

Упражнение 1:
Номер 1
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода будет указывать на объект класса Array

Ответ:

 (1) (a = {f:10}).__proto__ = Array.prototype; 

 (2) (a = {f:10, __proto__: String.prototype}).__proto__ = Array.prototype; 

 (3) (a = {f:10, __proto__: Array.prototype}); 

 (4) (a = [2,3, __proto__: Array.prototype]); 

 (5) (a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype; 


Номер 2
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода будет указывать на объект класса x

Ответ:

 (1) (a = [2,3,__proto__ = String.prototype]).__proto__ = x.__proto__ 

 (2) (a = [2,3]).__proto__ = x 

 (3) (a = [2,3, __proto__: x]) 

 (4) (a = [2,3]).__proto__ = x.prototype 

 (5) (a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype 

 (6) (a = [2,3, __proto__: x.prototype]) 


Номер 3
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода не будет указывать ни на объект класса Array, ни на объект класса x

Ответ:

 (1) (a = {f:10}).__proto__ = Array.prototype 

 (2) (a = {f:10, __proto__: String.prototype}).__proto__ = Array.prototype 

 (3) (a = {f:10, __proto__: Array.prototype}) 

 (4) (a = [2,3,__proto__ = String.prototype]).__proto__ = x.__proto__ 

 (5) (a = [2,3]).__proto__ = x 

 (6) (a = [2,3, __proto__: Array.prototype]) 

 (7) (a = [2,3, __proto__: x]) 

 (8) (a = [2,3]).__proto__ = x.prototype 

 (9) (a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype 

 (10) (a = [2,3, __proto__: x.prototype]) 


Упражнение 2:
Номер 1
Каким образом в класс-наследник попадают поля базового класса?

Ответ:

 (1) копируются в конструкторе 

 (2) копируются при создании класса-наследника 

 (3) доступ без копирования происходит при обращении к полю 

 (4) доступ без копирования происходит при записи в поле 


Номер 2
Конструктор базового класса записан

Ответ:

 (1) в ссылке super 

 (2) в ссылке constructor 

 (3) в ссылке __constructor__ 


Номер 3
Если объекту изменить ссылку __proto__ динамически, то:

Ответ:

 (1) ничего не произойдет 

 (2) объект станет вести себя как объект другого класса 

 (3) это проявится только при наследовании 


Упражнение 3:
Номер 1
Альтернативное наследование решает проблему

Ответ:

 (1) наследуемых свойств 

 (2) вызова конструктора базового класса через super() 

 (3) вызова методов базового класса через super 

 (4) устранения двойных вызовов базовых конструкторов 


Номер 2
Если изменить (добавить) какие-либо методы базового класса, то в производных классах

Ответ:

 (1) эти изменения не проявятся 

 (2) эти изменения проявятся немедленно 

 (3) эти изменения проявятся только при наследовании 


Номер 3
Проверить, к какому классу относится данный объект, можно

Ответ:

 (1) с помощью оператора typeof 

 (2) с помощью оператора instanceof 

 (3) только вручную 


Упражнение 4:
Номер 1
Отметьте все причины, по которым объект с динамически установленным __proto__ может не являться адекватной заменой объекта, созданного при помощи new (так, что ссылки __proto__ у обоих объектов будут одинаковы)?

Ответ:

 (1) если не приложены специальные усилия, то в рассматриваемом объекте не будут видны поля и методы базового класса 

 (2) если не приложены специальные усилия, то в его функциях нельзя будет вызвать функции базового класса через super 

 (3) если у рассматриваемого класса есть нетривиальный конструктор, нужно дополнительно позаботиться о том, чтобы его вызвать для данного объекта 


Номер 2
"Лишние" вызовы конструкторов происходят:

Ответ:

 (1) из-за обычного наследования 

 (2) из-за альтернативного наследования 

 (3) из-за множественного наследования 


Номер 3
Для чего используется ссылка __constructor__

Ответ:

 (1) с ее помощью вызывается конструктор данного класса 

 (2) с ее помощью вызывается через super() конструктор базового класса 

 (3) с ее помощью вызываются через super методы базового класса 


Упражнение 5:
Номер 1
Зачем может быть нужно добавлять функции в класс Object?

Ответ:

 (1) это способ сделать их глобальными - то же самое, что добавить в _global 

 (2) это лучший способ спрятать свои функции от посторонних глаз 

 (3) это позволяет сделать свои функции доступными в качестве методов любого объекта 

 (4) это позволяет сделать свои функции доступными в качестве "константных" (вызываемых через объект-конструктор) методов любого класса 


Номер 2
Зачем может быть нужно добавлять функции в класс Function?

Ответ:

 (1) это способ сделать их глобальными - то же самое, что добавить в _global 

 (2) это лучший способ спрятать свои функции от посторонних глаз 

 (3) это позволяет сделать свои функции доступными в качестве методов любого объекта 

 (4) это позволяет сделать свои функции доступными в качестве "константных" (вызываемых через объект-конструктор) методов любого класса 


Номер 3
Что делает запись var __proto__ = this?

Ответ:

 (1) эта запись некорректна, будет выдана ошибка компиляции 

 (2) она делает объект, вызвавший текущую функцию, объектом класса, методом которого данная функция является 

 (3) она делает контекст вызова текущей функции объектом класса, методом которого данная функция является 

 (4) она временно изменяет класс данного объекта 




Главная / Программирование / Flash MX для профессиональных программистов / Тест 7