Показать сообщение отдельно
Старый 30.11.2007, 14:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
String.prototype.__resolve = function(p){
	if(!isNaN(p)){
		return this.charAt(p);
	}
}
var a:String = "abcdefghjklmo";
trace(a[3]);

Единственное, что нужно понимать, что возвращенное значение будет не ссылкой на символ строки, а новой строкой, так что
Код:
a[3] = "z";
Не изменит изначальную строку

ЗЫ. Почему-то такая кончтрукция (попытка создать геттер\сеттеры не увенчалась успехом %) Но чего-то думать, как бы это обойти не хочется %)
Код:
String.prototype.__resolve = function(p){
	if(!isNaN(p) && p<this.length){
		this.___prop = "."+this.charAt(p);
		this.gfunc = function(){
			return this.___prop.charAt(1);
		}
		this.sfunc = function(_p){
			this.split(this.___prop.charAt(1)).join(_p);
		}
		this.addProperty(this.charAt(p), this.gfunc, this.sfunc);
		return this.gfunc();
	}
}
var a:String = "abcdefghjklmo";
trace(a[3]);
a[3] = "z";
trace(a);
Так тоже не получилось =)
Код:
String.prototype.__resolve = function(p){
	if(!isNaN(p) && p<this.length){
		this.___prop = "."+this.charAt(p);
		this.gfunc = function(){
			return this.charAt(p);
		}
		this.sfunc = function(_p){
			this.split(this.___prop.charAt(1)).join(_p);
		}
		this.addProperty(this.___prop, this.gfunc, this.sfunc);
		if(this[this.___prop] == undefined) this[this.___prop] = this.charAt(p);
		return this[this.___prop];
	}
}
var a:String = "abcdefghjklmo";
trace(a[3]);
trace(a["___prop"]);
trace(a[".d"]);
a[3] = "z";
trace(a);
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 30.11.2007 в 14:39.