А, ну например 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, время: 13:01. |