Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правда ли строки в JavaScript неизменяемы? (https://javascript.ru/forum/misc/23270-pravda-li-stroki-v-javascript-neizmenyaemy.html)

trikadin 18.11.2011 22:05

Это переопределение true как false))

Ну, всё зависит от кривизны рук программиста. Но вообще да, выстрелить себе в ногу там на ура можно (ссыль на луркморе).

Nekromancer 18.11.2011 22:07

Цитата:

Сообщение от B~Vladi (Сообщение 137509)
Если лень - могу объяснить.

Да нет, посмотрю.

Bbore 18.11.2011 22:08

Блин, только сейчас заметил, что запостил в "Работу"...:-E
Прошу у всех прощения, ошибся вкладками в браузере...

Благодарю за ответы! Теперь разобрался.

B~Vladi 18.11.2011 22:32

Цитата:

Сообщение от trikadin
Это переопределение true как false))

Я же написал, что понял :)
Цитата:

Сообщение от Bbore
Прошу у всех прощения, ошибся вкладками в браузере...

Перенёс.

trikadin 18.11.2011 22:38

Цитата:

Сообщение от B~Vladi
Я же написал, что понял

Ну мало ли) Понять можно и неправильно.

Nekromancer 18.11.2011 22:46

B~Vladi,
Посмотрел. Не совсем разобрался ещё конечно, но в принципе понял, что имелось введу. Для объектов и я пользовался таким подходом, как раз когда делал но том же node.js - server push. Объект соединения при вызове строки возвращал md5 хеш.
Но использование такого подхода для строки, на мой взгляд, менее востребованно. Хотя тот пример, что я описывал не настолько не реальный:
(function(toString){
	String.prototype.toString = function(encoding, currentEncoding){
		if(!encoding) return toString;
		else {
			currentEncoding = this.encoding || 'utf8';
			try{
				return new Buffer(toString.call(this), currentEncoding).toString(this.encoding = encoding);
			}catch(e){
				return null; // Лучше ошибка вызвать конечно, но для примера так
			}
		}
	};
}(String.prototype.toString));

Грубо говоря конечно. Так же в Strict Mode этот код упадёт :)
UPD: Таки currentEncoding можно опустить, Buffer сам по умолчанию выбирает uft8.

B~Vladi 19.11.2011 10:39

Цитата:

Сообщение от Nekromancer
Посмотрел. Не совсем разобрался ещё конечно, но в принципе понял, что имелось введу.

Т.е. когда мы пытаемся получить значение атрибута, подставляются значения переменных, которые определены в исходном коде шаблона. Таким образом в реализациях логики тегов не приходится явно вычислять значения атрибутов.


Часовой пояс GMT +3, время: 08:29.