Gépelt kiterjeszteni tárgy modul

szavazat
3

Amit akarok, hogy valóban hasonlít ez , és ezt csak próbálom kitalálni, hogyan vessenek ArrayExtension belsejében egy modult.

Próbálom, hogy valami hasonló ahhoz, ahogyan a C # kiterjesztése módszerek működnek, így én is csak importálni a modult, és én is az én extra módszerekkel. A linkek I biztosított mutatni, hogyan lehet kiterjeszteni egy létező objektum, de nem tudták, hogy kitaláljuk, hogyan lehet párosítani, hogy a modulba.

A kérdést 11/10/2012 01:52
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Ha céloz nem böngésző környezetekben, mint node.js ez lehetséges lesz, mert akkor képes lesz arra, hogy adja át hivatkozások a modul globális tagjai, például Array, a többi modulhoz. A többi modul akkor meghosszabbítja a telt tárgy és / vagy annak mintapéldánya extra funkció, amely csak akkor lesz elérhető a hívó modul. Más modulok volna, hogy ugyanezt tegye annak érdekében, hogy ezeket a kiterjesztéseket; ezért a konfliktusok minimálisak, hiszen az import explicit.

Azonban a böngésző környezetben nem ez a helyzet, mivel csak egy windowtárgy, és bármilyen változás a tagjai mindenütt elérhetők. Amint az Ön modulok terjeszteni Arrayaz adott kiterjesztés elérhető lenne az összes többi modul - növeli a lehetőségét konfliktusok és így a kód nehezebb ok kb.

Ezzel azt mondta, vannak minták a JS, ezért géppel, ami elérni, amit akarsz. Az egyik ilyen minta a „Mixin” minta, amely lehetővé teszi, hogy adjunk extra funkciók egy objektum példány alapján. Azt is külön újra felhasználható kódot mixin modulok, amelyek majd alkalmazni, hogy egy tárgy, ha szükséges, vagy akár automatikusan konstruktőrök. Vegyünk egy pillantást erre a tisztességes áttekintést és végrehajtása példa: http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/

Válaszolt 01/11/2012 05:48
a forrás felhasználó

szavazat
0

Ha megpróbálja kiterjeszteni a beépített Array típus nem lehet csinálni, hogy egy modulon belül. Maga kiterjesztés kell élni egy ArrayEx.ts fájlt, és előfordulhat kívül minden modult. Ennek oka az, hogy az, hogy ha tette egy modulon belül azt kiterjesztené a Foo.Arraytípus, amely nem azonos a Array.

De azt mondta, csak azt, hogy képes import modul van az extra módszerek jelenne meg, és minden, amire kell tennie, hogy adjunk egy /// <reference path='ArrayEx.ts' />bármilyen kívánt fájl kiterjesztését módszerek állnak rendelkezésre, hogy. Ez lényegében ugyanaz.

Válaszolt 11/10/2012 07:07
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more