在 MDC 或 ECMAscript 规范中,我没有找到任何关于我的问题的内容。也许有人知道一个更“骇客”的方法来解决这个问题。
我在我的环境中的每个 javascript 文件上调用 "use strict"
(function(win, doc, undef) {
"use strict";
// code & functions
}(window, window.document));
现在,我有一个自定义函数来处理错误。该函数使用 .caller
属性提供 上下文堆栈跟踪。看起来像这样:
var chain = (function() {
var _parent = _error,
_ret = '';
while( _parent.caller ) {
_ret += ' -> ' + _parent.caller.name;
_parent = _parent.caller;
}
return _ret;
}());
当然,在严格模式下,.caller
是一个不可删除的道具,当检索时抛出。所以我的问题是,是否有人知道如何严格的 关闭更“功能明智”?
"use strict";
在调用后被所有函数继承。现在我们有可能在特定函数中使用严格模式,只需在函数顶部调用 "use strict";
,但是有没有相反的方法呢?