Как я понимаю, когда переменная определена, она привязывается к «ближайшей» локальной области через this
.
Если область не задана локально, ближайшая область действия становится window
.
Однако в строгом режиме для локальной области устанавливается значение undefined вместо window
, как часть спецификации ECMAscript 5, предназначенной для ограничения неправильного использования глобальной области.
Использование шаблона выражения немедленно вызываемой функции и строгого режима для создание плагина jQuery
;( function( $, window ){
"use strict";
var myScope = this;
var myVar = 1;
var myFunction = function(){
console.log( myScope, myVar );
}
$.myFunc = myFunction;
})( jQuery, window );
локальная область (контекст) не создается (через вызов функции) и, таким образом, устанавливается в значение undefined.
Если локальная область не определена, а window.myVar
не определена, какова область действия переменной myVar
и как получить к ней доступ?