以下 javascript 代码允许您访问全局对象(窗口/工作者)。
(new function Outer(){
console.log(this); /* The object */
(function(){ // This function could be a 3rd Party function
console.log(this); /* window !!*/
})();
});
有没有一种方法可以确保内部 this 始终获得对外部上下文的引用。
我知道我能做到
(new function Outer(){
'use strict';
console.log(this); /* The object */
(function(){ // This function could be a 3rd Party function
console.log(this); /* undefined ? !!*/
})();
});
但这导致this
未定义。
编辑
我知道bind
,但是如果内部函数是嵌套的怎么办。例如像
(function(){
(function(){
(function(){
console.log(this);// undefined
})();
})();
}).bind(this)();
我想要的是:外部 {}而不是使用变量对外部的引用:-|