Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
<code>
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
</code>Главное, что мне в нем нравится — почти все задания представляют собой нормальный, вполне практичный код
Вот как раз про #2 я бы так не сказал, там же ошибка
1..z provide:100['toString']['length']:function foo() {
return this;
}
alert(foo === foo.prototype.constructor); // true
alert(foo() === foo.prototype.constructor()); // ?foo.prototype.constructor(); // foo.prototype (foo.prototype.constructor)(); // тоже foo.prototype // но (foo.prototype.constructor = foo.prototype.constructor)(); // global
with ({foo: function () {alert(this);}}) {
foo(); // объект with, добавленный к scope chain, но не global
}( 1 ) [ 2 ] (аргументы);
with ({foo: function () {alert(this);}}) {
foo();
}
( {foo: function () {alert(this);}} ) ["foo"] ();
foo.prototype.constructor(); // эквивалентно ( foo.prototype ) ["constructor"] ();
(foo.prototype.constructor)(); // эквивалентно ( foo.prototype ) ["constructor"] ();
(foo.prototype.constructor = foo.prototype.constructor)(); // нельзя представить в таком виде
var foo = {bar: function () {}};
foo.bar(); // Reference type (accessor), база - foo
(foo.bar)(); // тоже, Reference type, база - foo, используется оператор группировки
function test() {}
test(); // тоже Reference type (identifier), база - global
this.test(); // равносильно предыдущему, база видна явно(foo.bar = foo.bar)(); // не Reference type, this = null => global
(foo.bar || foo.bar)();
(foo.bra, foo.bra)();
(function () {})();function foo() {
function bar() { alert(this); }
bar(); // global
}AO.bar();
var a = 1, b = 3; a ++ b;
var x;
foreach (x in {})
{
// ...
}var x;
foreach (x in {}) {
// ...
}
Маленький тест на знание JS