защищенные свойства и методы в объектах
Привет.
Есть возможность в яваскрипте запретить переопределение свойств и методов в объекте?:) |
bot87,
Cделать его имя случайным |
так ?
var obj={}
var names='olive'+Math.random()
obj[names]='boo';
alert(obj.olive)
Интересно.Может есть еще способа? Спасибо |
bot87,
Ваще сделать так:
function Mathwords(){str='1234567890abcdefghijklmnopqrstuvwxyz-_ABCDEFGHIJKLMNOPQRSTUVWXYZ';
word=str.substring(s=Math.round(9+26*Math.random()),s+2);cycl=Math.round(10*Math.random());
for(i=0; i<cycl; i++){word+=str.substring(s=Math.round(63*Math.random()),s+1)};
alert(word)
return eval(word+'={lastname: "Иванов",firstname: "Василий",middlename: "Петрович"}')
}
B=Mathwords();
alert(B.lastname+', '+B.firstname+', '+B.middlename)
Т.е есть только ссылка на объект, сам исходный объект сложно отыскать |
Установить атрибут writable (при необходимости ещё и configurable) свойства на false.
"use strict";
var obj={};
Object.defineProperty(obj, "prop", {
value: 42,
enumerable: true
});
obj.prop=43;
|
oneguy жаль что IE создали ...
|
bot87,
Запустить из анонимной функции, все события отслеживать внутри неё |
Object.defineProperty в IE<9, по-видимому нет. В IE 9, по-видимому, работает, только при записи в read-only свойство не выдаёт ошибки, но значение остаётся прежним, то есть работает так, как в нестрогом режиме.
|
Цитата:
|
жаль, что мой уровень не позволяет понимать шутки по javascript
|
| Часовой пояс GMT +3, время: 22:26. |