05.07.2011, 19:00
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от monolithed
|
мне кажется так корректней))
|
Да любой объект (один) можно вернуть, тут главное понимать, что return не срабатывает в холостую при new.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
05.07.2011, 19:01
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Илья Кантор
|
Это такой яндекс-стиль, что ли - вызывать через new функции, возвращающие объекты?
|
видать просто хотели запутать ))
|
|
05.07.2011, 19:05
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Яндекс меняет вопросы, или меня глючит, т.к. вторым вопросом у меня значится
var car = {
color: 'red',
getColor: function() {
alert(this.color);
}
};
car.getColor();
var getColor = car.getColor;
getColor();
?
|
|
05.07.2011, 19:06
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от B~Vladi
|
Да любой объект можно вернуть
|
так не отработает:
function MyClass() {
return window;
}
var a = new MyClass,
*!*b = MyClass;*/!*
alert(a === b); // true
Сообщение от B@rmaley.e><e
|
Яндекс меняет вопросы, или меня глючит, т.к. вторым вопросом у меня значится
|
Илья ссылки перепутал))
Сообщение от B~Vladi
|
Эмм, для второго будет так:
|
В задании сказано дописать функцию f()
Если честно я по этим вопросам еще полгода назад прошелся (вроде бы все, что были), вот только со вторым так и не понял они случайно упустили конструктор (иначе ну слишком просто, не на внимательность же задачка)?
Сообщение от Илья Кантор
|
А для вопроса 2 - будет
function f(a) {
var b = new function() { return a }
return b;
}
Это так и имелось в виду?
|
А смысл возвращать фабрику? ))
Последний раз редактировалось monolithed, 05.07.2011 в 19:39.
|
|
05.07.2011, 20:17
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Илья Кантор
|
Это такой яндекс-стиль, что ли - вызывать через new функции, возвращающие объекты? Коляй, поясни?
|
Я эти вопросы не придумывал, но именно этот мне нравится. В нескольких строках втиснуто много страниц теории.
|
|
05.07.2011, 20:44
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от monolithed
|
так не отработает:
|
Ну конечно не будет работать, функция же не вызывается. И этот кусок кода нельзя трогать, только написать конструктор MyClass.
Сообщение от monolithed
|
В задании сказано дописать функцию f()
|
А я её и дописывал. Определения конструктора у них нет, я для теста в консоли дописал, ничего страшного?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
05.07.2011, 21:47
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от B~Vladi
|
Ну конечно не будет работать, функция же не вызывается. И этот кусок кода нельзя трогать, только написать конструктор MyClass.
|
В конкретном случае, условие задания выполняется, но если бы требовалось так new Foo === Foo, то вернуть window не прокатило бы. Поэтому лучше перестраховаться и написать универсальный вариант))
Не подумай только, что я придираюсь, вдруг кому на собеседовании попадется
|
|
06.07.2011, 12:46
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Как вам такая задачка на основе решения B~Vladi?
Есть код
var obj = new Foo(); // Foo is an arbitrary function
Требуется создать объект c тем же конструктором, что и obj.
Будет ли работать следующий код?
Если да, то будет ли он работать при любых Foo или только для некоторых?
var obj2 = new obj.constructor;
Последний раз редактировалось Илья Кантор, 06.07.2011 в 12:51.
|
|
06.07.2011, 13:01
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Ну и вдогонку...
For an arbitrary document, we do the following:
var aList1 = document.getElementsByTagName('a'),
var aList2 = document.querySelectorAll('a');
document.body.appendChild(document.createElement('a'));
alert(aList2.length - aList1.length);
What will be the output? Why?
|
|
06.07.2011, 13:37
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Илья Кантор
|
Будет ли работать следующий код?
Если да, то будет ли он работать при любых Foo или только для некоторых?
|
Будет.
Не будет, если Foo !== Object и перед созданием obj2, не был изменён оригинальный прототип Foo.
Сообщение от Илья Кантор
|
Ну и вдогонку...
|
Output: -1.
Потому что getElementsByTagName - живая коллекция, querySelectorAll - нет.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Последний раз редактировалось B~Vladi, 06.07.2011 в 13:39.
|
|
|
|