不,你不能禁用每个函数的严格模式。 
理解严格模式在词法上起作用很重要;意思 - 它影响函数声明,而不是执行。在严格代码中声明的任何函数本身都成为严格函数。但并不是从严格代码中调用的任何函数都一定是严格的:
(function(sloppy) {
  "use strict";
   function strict() {
     // this function is strict, as it is _declared_ within strict code
   }
   strict();
   sloppy();
})(sloppy);
function sloppy(){
  // this function is not strict as it is _declared outside_ of strict code
}
请注意我们如何在严格代码之外定义函数,然后将其传递给严格的函数。
你可以在你的例子中做类似的事情——有一个带有“草率”函数的对象,然后将该对象传递给那个严格的立即调用的函数。当然,如果“草率”函数需要从主包装函数中引用变量,那将不起作用。
另请注意,其他人建议的间接 eval在这里并没有真正的帮助。它所做的只是在全局上下文中执行代码。如果您尝试调用本地定义的函数,则间接 eval 甚至找不到它:
(function(){
  "use strict";
  function whichDoesSomethingNaughty(){ /* ... */ }
  // ReferenceError as function is not globally accessible
  // and indirect eval obviously tries to "find" it in global scope
  (1,eval)('whichDoesSomethingNaughty')();
})();
关于全局 eval 的这种混淆可能来自这样一个事实,即全局 eval 可用于从严格模式中访问全局对象(不再可以简单地通过访问this):
(function(){
  "use strict";
  this; // undefined
  (1,eval)('this'); // global object
})();
但是回到问题...
你可以欺骗并通过Function构造函数声明一个新函数——这恰好没有继承严格性,但这将依赖于(非标准)函数反编译,你将失去引用外部变量的能力。
(function(){
  "use strict";
  function strict(){ /* ... */ }
  // compile new function from the string representation of another one
  var sneaky = Function('return (' + strict + ')()');
  sneaky();
})();
请注意,FF4+ 似乎不同意规范(据我所知),并且错误地标记了通过Functionas strict创建的函数。这不会发生在其他支持严格模式的实现中(如 Chrome 12+、IE10、WebKit)。