【发布时间】:2017-10-08 21:53:59
【问题描述】:
我有库代码做一个简单的函数分配。该函数是从全局范围访问的。
当我在文件开头添加"use strict" 时,我收到错误TypeError: a is undefined,分配给a.b。
"use strict"; /* Remove this and 'a' is defined */
(function() {
var a = this;
a.b = function() {
document.getElementById('test').innerHTML = 'abc';
};
})();
b();
<div id="test"></div>
考虑到var a 已在前一行声明,为什么会出现此错误?
【问题讨论】:
-
是的,
a被声明了,但它被分配给this,这在严格模式下是未定义的
标签: javascript strict javascript-namespaces