Poszukuję sposobu nadpisania właściwości .length obiektu w JavaScript.Jak przesłonić Function.length, aby zwrócić długość tablicy, w trybie ścisłym
Obecnie posiadają owijki na parent.properties.objects tablicy
(nadrzędny jest używany do, na kod się bardziej czytelne w kontekście)
Jest to podstawową strukturę:
(zmienna macierzysty jest zdefiniowana w nazw i intialized)
var parent = function() {
this.properties = {
objects: [];
};
};
owijka
(function() {
"use strict";
objects = function() {
Jeśli żaden argument nie jest przekazywana, zakładamy dostać
if (arguments.length === 0) {
var _objects = parent.properties.objects;
return _objects;
modyfikować lub filtr obiektów
} else if (arguments.length > 0) {
...
}
};
to tworzy Object.prototype zmienna (nie [prototyp]) i dodaje długości metodą ()
objects.prototype.length = function() {
var length = parent.properties.objects.length;
return length;
}
błąd
objects.prototype.__proto__.length = function() {
var length = parent.properties.objects.length;
return length;
}
parent.objects = objects;
})();
Czy możesz dokładniej określić rodzaj błędu, który otrzymujesz? – guypursey
Zhakowałem go za pomocą objects.Length() (JavaScript rozróżnia duże i małe litery). Robię to, aby napisać wygodny interfejs API, a nie mieć funkcji dla każdej operacji pobierania/ustawiania właściwości. ale jedna funkcja dla każdej własności. Byłoby miło wywołać objects.length(), ale zrobi to objects.Length(), w przeciwieństwie do objects(). Length(). Błąd był pewnego rodzaju __proto__ nie znaleziono bla bla bla. Będzie musiał poczekać na ECMA 6. –
Jaki jest twój ostatni wiersz 'parent.object = object;' powinien zrobić? 'parent' jest funkcją i nie widzę zmiennej' object' zadeklarowanej gdziekolwiek, – Bergi