Blog webdeveloperski Patryk yarpo Jar

Różne sposoby konkatencji stringów w JS

Autor wiadomości Styczeń 12, 2011

Jest kilka sposobów na łączenie cięgów znaków. W tym artykule opiszę 3.

Sposób I - "optymistyczny"

Optymistyczny dlatego, że używa się samych plusów.

var string_1 = 'Ala ma ';
var string_2 = 'kota';
alert(string_1 + string_2);

Korzystając z tej metody pamiętaj o różnych niespodziankach związanych z wykorzystywaniem operatora `+', który jest też wykorzystywany do dodawania liczb.

Sposób II - obiektowy

Wykorzystamy tu wbudowaną metodę obiektu String.

var string_1 = 'Ala ma ';
string_1.concat('kota');
alert(string_1);

Metoda ta, na pierwszy rzut oka wydaje się mniej intuicyjna. Z moich testów wynika, że także nie musi (a w przypadku IE zdecydowanie nie jest) być najbardziej wydajna. Choć to dziwne.

Sposób III - własny

Stwórzmy szybko prosty obiekt YString (wielka litera z przodu nie przez przypadek - konwencja. Obiekty wymagające operatora new staraj się nazywać wielką literą. Obiekty, które nie wymagają new, małą literą):

var YString = function ( sep )
{
    this.__strings__ = [];
    this.separator = sep || "" ;
};

YString.prototype.append = function( str )
{
    this.__strings__.push(str);
    return this;
};

YString.prototype.toString = function()
{
    return this.__strings__.join(this.separator);
};

I przykład zastosowania takiego kodu:

var oString = new YString(" ");
oString.append("Ala ma").append("kota");
alert(oString.toString());

Dodatkową ciekawostką jest zastosowanie tu wzorca łańcuchowego (jak np. w jQuery, o innym sposobie implementacji tego wzorca możesz przeczytać w artykule wzorzec łańcuchowy w oparciu o fabrykę obiektów). Po wywołaniu metody append(), możemy po kropce wywołać kolejną metodę tego obiektu, będzie ona działać a tej samej instancji obiektu, ponieważ w metodzie append() zawsze zwracamy referencję obiektu, na którym pracujemy.

Warto przeczytać:

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

 

Brak trackbacków.