кстати прикольно пофиксили:)
Цитата:
Так что с точки зрения железа вроде это 2 разных undefined. Может я в чём-то неправ? |
Цитата:
var t = new Array(5); t[1] = undefined; t.map(function(c, i) {alert(c); return 2;}); |
Цитата:
|
Цитата:
|
У меня кстати есть предложение по сжиманию кода. Я у себя делаю так:
(function(A) { })(Array.prototype); Имхо коротко и понятно:) Хотя в вашем случае это будет не так красиво, зачем-то ещё Array передаёте... |
Цитата:
|
Цитата:
Правила такие При установке свойства length удаляются числовые свойства больше либо равные новому length. При установке числового свойства, если length не больше этого свойства, то length устанавливается на единицу больше этого свойства. Отрицательный length, кстати, присвоить нельзя. Некоторые следствия из этих правил. Свойство length равно количеству элементов в массиве только при аккуратной работе с массивом (нет пропусков элементов). В общем случае length всегда больше максимального индекса в массиве. Чтобы очистить массив, достаточно свойству length присвоить 0. |
Цитата:
Да... я уже понял, что рассматривать низкий уровень в js-се не катит, тк его движки сами написаны на ОО язке/ах... Kolyaj, сенкс за доходчивое объяснение. Наверное надо всё таки собраться и прочитать http://javascript.ru/ecma/part15 :) |
Переопределенные
constructor , toString , toLocaleString , valueOf , hasOwnProperty , propertyIsEnumerable и isPrototypeOf не становятся enumerable в IE<9, поэтому Object.keys({toString: fn}) вернет пустой массив.Думаю toString и valueOf хорошо бы пофиксить. ___________________ offtop Раньше этого как-то не замечал, а вот сейчас наткнулся, такое во всех браузерах: function F() {} F.prototype.constructor = F; F.prototype.toString = F; for (var key in new F) { alert(key); }constructor не становится enumerable, в отличие от toString |
Цитата:
Цитата:
function F() {} alert([F.prototype.hasOwnProperty('constructor'), F.prototype.hasOwnProperty('toString')]) |
Часовой пояс GMT +3, время: 21:33. |