Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   защищенные свойства и методы в объектах (https://javascript.ru/forum/misc/30844-zashhishhennye-svojjstva-i-metody-v-obektakh.html)

bot87 17.08.2012 23:55

защищенные свойства и методы в объектах
 
Привет.
Есть возможность в яваскрипте запретить переопределение свойств и методов в объекте?:)

Deff 17.08.2012 23:57

bot87,
Cделать его имя случайным

bot87 18.08.2012 00:03

так ?
var obj={}
var names='olive'+Math.random()
obj[names]='boo';
alert(obj.olive)

Интересно.Может есть еще способа?
Спасибо

Deff 18.08.2012 00:42

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)

Т.е есть только ссылка на объект, сам исходный объект сложно отыскать

oneguy 18.08.2012 00:55

Установить атрибут writable (при необходимости ещё и configurable) свойства на false.
"use strict";
var obj={};
Object.defineProperty(obj, "prop", {
  value: 42,
  enumerable: true
});
obj.prop=43;

bot87 18.08.2012 01:08

oneguy жаль что IE создали ...

Deff 18.08.2012 01:21

bot87,
Запустить из анонимной функции, все события отслеживать внутри неё

oneguy 18.08.2012 01:26

Object.defineProperty в IE<9, по-видимому нет. В IE 9, по-видимому, работает, только при записи в read-only свойство не выдаёт ошибки, но значение остаётся прежним, то есть работает так, как в нестрогом режиме.

bot87 18.08.2012 09:31

Цитата:

Сообщение от Deff (Сообщение 198411)
bot87,
Запустить из анонимной функции, все события отслеживать внутри неё

а как можно отследить события внутри функции?

bot87 18.08.2012 10:10

жаль, что мой уровень не позволяет понимать шутки по javascript


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