Jeśli utworzyć moduł node.js "augs", które zawieraCzy mogę powiększyć obiekt, funkcję, datę itd. Za pomocą "metod statycznych" w węźle?
Object.foo = "bar";
Następnie wpisać rEPL
require("./augs");
typeof Object.foo
wrócę 'undefined'
.
Mamy znaczną ilość kodu w naszej aplikacji internetowej, która opiera się na metodach convenience dodawanych do Object
, Function
, Date
itp staramy się udostępniać kodu między frontend i backend, ale wydaje się, że węzeł resetuje te funkcje konstruktorów lub w inny sposób zapobiega wyciekaniu przez nie zmian w danym module do innych modułów. Chociaż jest to dość sprytne i doceniam poziom ochrony, czy jest jakiś sposób, aby powiedzieć "Wiem, co robię, proszę pozwolić mi uzupełnić Object
"?
Tak, myślę, że to zadziała; Musiałbym jednak przekonwertować nasz (raczej duży) 'augs.js' do modułu eksportującego, który jest do niczego. Dziękuję również za wskazanie, że 'Obiekt' z jednego modułu nie jest' == '' Obiekt' z innego modułu. – Domenic
@lwburk można rozwinąć w Object różni się w różnych modułach? –
@Peter - Po prostu, tubylcy w module nie są tymi samymi odpowiednikami, co w skrypcie, który załadował ten moduł. Ponadto: "W chwili obecnej, jak w przypadku modułów 1.1, specyfikacja, w której środowisko decyduje się na implementację klas rodzimych w modułach, jest" nieokreślona ", co oznacza, że decyzja o tym, jak powinna działać, należy do poszczególnych implementacji środowiska." http://wiki.commonjs.org/wiki/Modules/Natives –