谁能解释 Internet Explorer 和 Firefox 在以下方面的行为差异:
var myNamespace = (function () {
var exposed = {};
exposed.myFunction = function myFunction () {
return "Works!";
}
console.log(myFunction());
// IE: "Works!"
// Firefox: ReferenceError: myFunction is not defined
console.log(exposed.myFunction());
// IE: "Works!"
// FF: "Works!"
return exposed;
})();
console.log(myNamespace.myFunction());
// IE: "Works!"
// FF: "Works!"
myFunction()
在 Internet Explorer 中,此方法允许我通过使用或来从命名空间函数内部调用我的函数exposed.myFunction()
。
在我的命名空间功能之外,我可以使用myNamespace.myFunction()
在 Firefox 中,结果是相同的,除了不工作的裸命名函数调用。
它应该工作吗?如果不应该,那为什么不呢?
如果应该那么这是一个已知的错误吗?