А именно, как выглядит следующий код:
var sup = new Array(5);
sup[0] = 'z3ero';
sup[1] = 'o3ne';
sup[4] = 'f3our';
document.write(sup.length + "<br />");
вывод '5' для длины, когда все, что вы сделали, задано различными элементами?
Моя проблема с этим кодом заключается в том, что я не понимаю, как изменяется length
, не вызывая метод getLength()
или setLength()
. Когда я выполняю одно из следующих действий:
a.length
a['length']
a.length = 4
a['length'] = 5
в объекте, отличном от массива, он ведет себя как dict/ассоциативный массив. Когда я делаю это на объекте массива, он имеет особое значение. Какой механизм в JavaScript позволяет это сделать? Имеет ли javascript некоторую систему свойств, которая переводит
a.length
a['length']
в методы "get" и
a.length = 4
a['length'] = 5
в "установленные" методы?