А, ну например bind. С первого взгляда удобная штука. Но, насколько я понял, этот метод добавляет ещё больше путаницы.
Поправьте, если я ошибаюсь. Это новый метод функции. Его можно вызвать и после определения, где-нибудь в другой части кода. И не один раз, т.е. переопределить. Тогда как вообще потом искать, откуда берётся именно этот this. Либо это контекст, либо "забинденый" - непонятно. А если забинденый, то где и когда? Контекст то хоть можно отловить, если пройтись по стеку вызовов. Про наполнителя массива вообще молчу. PS: это задание они уже не первый год рассылают. |
Цитата:
если бы убрали возможность контролировать проверку обновлений через гуй ( а через конфиг можно.. таким образом отсеятся те, кому "по приколу" оставлять старый браузер) |
Цитата:
|
|
Цитата:
|
/me с радостью убедился, что большинство вопросов из топика и вакансий яндекса отвечены в курсах по javascript
|
P.S. А ниче если мы тут варианты решений пообсуждаем яндекса?
Например, вопросы 2 и 4 отсюда http://company.yandex.ru/job/vacanci...xml?ncrnd=2215 На ум сразу приходит фича new, когда оно возвращает объект из return. Ну, то есть для вопроса 4 это будет function MyClass() { return window }А для вопроса 2 - будет function f(a) { var b = new function() { return a } return b; }Это так и имелось в виду? Решение какое-то ну никак не жизненное... (как впрочем и сам таск) |
P.S. Смотрю еще задания яндекса.. например http://company.yandex.ru/job/vacanci...xml?ncrnd=2215, вопрос 3.
var Foo = function (value) { return { ... } }; function test() { var x = new Foo(5); ..Это такой яндекс-стиль, что ли - вызывать через new функции, возвращающие объекты? :) Коляй, поясни? |
Эмм, для второго будет так:
function FooClass(){} var a = new FooClass(); // имя FooClass может быть любым, заранее неизвестно function f(a) { var b = new a.constructor; return b; } var b = f(a); alert(b instanceof FooClass); ... ну если не будет такого кода: FooClass.prototype = {}; |
Цитата:
function MyClass() { return this.constructor ? this.constructor : arguments.callee; } var a = new MyClass, b = new MyClass; alert(a === b); // true |
Часовой пояс GMT +3, время: 20:47. |