Tôi không tìm thấy bất kỳ điều gì về câu hỏi của mình ở đây trên MDC hoặc thông số kỹ thuật ECMAscript. Có lẽ ai đó biết một cách 'hacky' hơn để giải quyết vấn đề này.
Tôi đang gọi "use strict"
mọi tệp javascript trong môi trường của mình. Tất cả các tệp của tôi bắt đầu như thế này
(function(win, doc, undef) {
"use strict";
// code & functions
}(window, window.document));
Bây giờ, tôi có một chức năng tùy chỉnh để xử lý lỗi. Các hàm đó sử dụng thuộc .caller
tính để cung cấp dấu vết ngăn xếp ngữ cảnh . Trông như thế này:
var chain = (function() {
var _parent = _error,
_ret = '';
while( _parent.caller ) {
_ret += ' -> ' + _parent.caller.name;
_parent = _parent.caller;
}
return _ret;
}());
Nhưng tất nhiên, ở chế độ nghiêm ngặt .caller
là một phần mềm hỗ trợ không thể xóa được sẽ ném khi được truy xuất. Vì vậy, câu hỏi của tôi là, có ai biết cách vô hiệu hóa "chức năng khôn ngoan" nghiêm ngặt hơn không?
"use strict";
được kế thừa bởi tất cả các hàm sau khi nó được gọi. Bây giờ chúng ta có khả năng chỉ sử dụng chế độ nghiêm ngặt trong các chức năng cụ thể bằng cách chỉ gọi "use strict";
ở trên cùng của chúng, nhưng có cách nào để đạt được điều ngược lại không?