Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.08.2011, 08:17
m00 m00 вне форума
Интересующийся
Отправить личное сообщение для m00 Посмотреть профиль Найти все сообщения от m00
 
Регистрация: 10.11.2009
Сообщений: 22

Да ... как раз сейчас и думаю, что с этим можно сделать.
Ответить с цитированием
  #12 (permalink)  
Старый 26.08.2011, 08:28
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

В strict mode this должен по-умолчанию быть равен undefined. Только with там запрещён
"use strict";

alert( (function(){return this})() )
В хромиуме (и, вроде как, FF5) оно уже работает, но в Опере ещё нет.

А ещё есть такая хитрость:
function create_isolated_closure(func)
{
  var global = (function(){return this;}).call(null);
  var undefined;

  // перекрываем абсолютно все что есть в global
  var scope = {};
  for(attr in global) {
	scope[attr] = undefined;
  }
  delete scope.alert; // оставляем доступ к alert(), чтобы тестировать функции
				
  with(scope)
	return eval("(function () { 'use strict'; return ("+func.toString()+"); })()");
}

function test()
{
  var w1 = (eval || eval)("this"),
        w2 = (function(){return this})();
  alert([w1, w2]);
}

var t = create_isolated_closure(test); // делаем изолированную копию функции

t.call({}); // вызов изолированной копии, DOM недоступен

Последний раз редактировалось B@rmaley.e><e, 26.08.2011 в 08:35.
Ответить с цитированием
  #13 (permalink)  
Старый 26.08.2011, 08:59
m00 m00 вне форума
Интересующийся
Отправить личное сообщение для m00 Посмотреть профиль Найти все сообщения от m00
 
Регистрация: 10.11.2009
Сообщений: 22

Да, strict mode интересная штуковина, не знал. Спасибо.
По примеру, в хроме помогает и this undefined, а вот в ff 3.6 всё отлично.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть текущую вкладку браузера? Nicko Общие вопросы Javascript 6 14.06.2016 20:58
Как закрыть динамичное окно вместе\после родительского? Vilmos Элементы интерфейса 1 16.07.2009 20:54
Как закрыть окно и вернуться на html-метку предыдущего? Kokaln Events/DOM/Window 6 21.04.2009 04:12
dynatree.jquery - как получть доступ к родительскому узлу. ast-ross jQuery 0 23.03.2009 18:39
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12