изменить область JavaScript - PullRequest
       12

изменить область JavaScript

2 голосов
/ 24 апреля 2011

Есть ли возможность обменять специальную глобальную область window на собственную? Я просто подумал, что with предназначено для этого, но он только складывает другую область поиска. Например.

test={};
with(test){
    a=1;
}

не создает свойство test.a, но window.a.

То есть объект window обладает специальным качеством JS, которое я не могу воссоздать с помощью собственного кода?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2011

Если свойство существует для объекта, данного with, оно будет изменено, но никогда не будет создано.Это основная «ошибка» при использовании with и основной причины, которой следует избегать.

0 голосов
/ 24 апреля 2011

При with только если переданный объект имеет это свойство, он будет изменен. Он не будет создан.

http://www.yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/

...