Есть ли способ в javascript, чтобы получить объем объекта? - PullRequest
1 голос
/ 10 сентября 2010

Есть ли какие-либо свойства, которые можно использовать или веб-инструменты, чтобы я мог оценить область действия двух объектов javascript во время выполнения?

Ответы [ 3 ]

2 голосов
/ 10 сентября 2010

Нет в браузере.Платформа Rhino JavaScript предоставляет вам все виды доступа к областям и контекстам (через Java).

Для каких целей вам нужен доступ к этой области?

Если вы хотите выполнить фрагменткода с доступом к свойствам определенного объекта, вы всегда можете использовать eval и with (с учетом их недостатков в производительности).

function exec(obj, func) {
   with (obj) {
      eval("("+func+")()");
   }
}

var actObj = {
   annoying: function (txt) {
      alert(txt);
   }
}

// using it:
exec(actObj, function () {
   annoying("HEY THERE FRIEND ! !");
});

Если вы хотите выполнить код в определенном контенте,без объекта, просто определите функцию внутри этой области, которую вы можете выполнить снаружи.

Например:

var module = (function () {
   var a = 2;

   var peek = function (fn) {
      eval("("+fn+")()");
   }

   return {
      peek: peek
   }
})();

module.peek(function () { alert(a); });
2 голосов
/ 10 сентября 2010

В Opera Dragonfly (инструменты разработчика) вы можете устанавливать точки останова внутри области видимости объекта и видеть переменные, методы и объекты, доступные в этой области видимости.Я не знаю, как это работает в других инструментах браузера (WebKit JavaScript Console, FireBug), но я думаю, что механизм похож.

1 голос
/ 10 сентября 2010

Да, я использую MS Visual Studio, чтобы наблюдать за изменением области действия. Обычно я смотрю на это ключевое слово

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...