【发布时间】:2013-01-19 19:20:19
【问题描述】:
据我了解,定义变量时,它会通过this 附加到“最近”的本地范围。
如果本地没有设置范围,则最近的范围变为window。
然而,在严格模式中,本地范围设置为未定义而不是window、as part of the ECMAscript 5 spec designed to limit misuse of the global scope.
使用immediately invoked function expression pattern 和严格模式创建 jQuery 插件
;( function( $, window ){
"use strict";
var myScope = this;
var myVar = 1;
var myFunction = function(){
console.log( myScope, myVar );
}
$.myFunc = myFunction;
})( jQuery, window );
本地范围(上下文)未创建(通过函数调用),因此设置为未定义。
如果本地作用域未定义且window.myVar未定义,那么变量myVar的作用域是什么,如何访问它?
【问题讨论】:
标签: javascript scope function-expression