защищенные свойства и методы в объектах
Привет.
Есть возможность в яваскрипте запретить переопределение свойств и методов в объекте?:) |
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
|
bot87,
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script> <input id="text" type=text value=1234567> <input id="button" type=button value=Клик> <script type="text/javascript"> (function() { alert("Функция запущена"); var ABC=[1,18,17,0]; $('#button').click(function() { //Отслеживаем событие alert($('#text').val()); alert("ABC="+ABC); }); }()) alert("Вне функции => ABC= "+typeof(ABC) ); </script> |
Часовой пояс GMT +3, время: 17:40. |