Пока я на работе, я напишу небольшие фрагменты JS для изучения самого языка, не используя какие-либо фреймворки. Однако, поскольку я ленив, я сохраню ссылку на document.getElementById
, сохраняя ее в переменной:
var grab = document.getElementById;
var foo = grab('some_id');
var bar = grab('some_other_id');
Это всегда работало в IE7 / 8, но я попробовал его дома на Firefox, и ему не понравился ярлык. Теперь это работает, когда я заключаю его в функцию и закрываю аргумент:
var grab = function (some_id) {
return document.getElementById(some_id);
};
но я не понимаю, зачем мне это нужно; в Firefox я могу разбрасывать ссылки на пользовательские функции, и он не жалуется:
var foo = function(x) {
alert(x);
};
var bar = foo;
foo('foo'); // alerts 'foo'
bar('bar'); // alerts 'bar'
Почему я не могу вызвать ссылку на document.getElementById, который я сохранил в переменной?