Maxmaxmахimus,
Непонятно, о чём пример. var string = "привет"; alert(string.foo); string.foo = 2; alert(string.foo); |
всё же есть некоторая непоследоватльность
свойства объектов это просто переменные которые содержат значения, не более того эти значения можно перезаписывать здесь же нельзя сказать что это переменная но можно было бы сказать что метод высчитывает длину строки при вызове |
Цитата:
если строка это объект то по логике этот объект может иметь свойства которые можно создать и переопределить |
А строка и не объект :)
|
Там строка не объект а просто строка.
Вот строка-объект: var string = new String("привет"); alert(string.foo); string.foo = 2; alert(string.foo); Хотя сдругой стороны Цитата:
<div id="SuperMegaID">Строка Из Дива</div> <SCRIPT> String.prototype.$$$=function() { return document.getElementById(this) } alert( "SuperMegaID" . $$$().innerHTML ); </SCRIPT> :) |
Цитата:
|
Цитата:
почему тут не превращает? var string = "привет"; alert(string.foo); string.foo = 2; alert(string.foo); |
Цитата:
var a = Object.getOwnPropertyDescriptor(new String("FOO"), "length"); var b,c = ""; for(b in a) c += b+"="+a[b]+"\n"; alert(c); можно запилить такое же самому : var a = {}; a["0"] = "ноль"; a["1"] = "один"; a["2"] = "два"; Object.defineProperty(a, "length", { enumerable: false, configurable: false, writeable: false, get: function(){ for(var i = 0; i in this; i += 1) ; return i; } }); alert( a.length ); // заимствуем метод у массива. у нас же ARRAY-LIKE объект Array.prototype.push.call( a, "три" ); alert( "length: "+a.length+"\n a[3] = "+a[3] ); |
Цитата:
|
Цитата:
String.prototype.foo=777; var string = "привет"; alert(string.foo); //777 string.foo = 2;//не перекроется alert(string.foo);//777 |
Часовой пояс GMT +3, время: 12:38. |