方才在调试js,在mozilla中
所有
畸形,然而在ie中却报告有configuration变量没有找到 。以下是代码:
以下是
引用片段:
var Environment = new (function Environment$ctor()
{
this.processCommandLine = function Env$procCmdLine(q)
{
var cmd = configuration {}; // <---- 便是这一行报告
舛误
//
其余代码省略
}
};
我先后把这一行改成如下的
模式:
以下是
引用片段:
var cmd = configuration == null? {}: configuration;
var cmd = "undefined" == typeof(configuration) ? {}: configuration;
var cmd = {}; if( "undefined" == typeof(configuration) ) cmd = configuration;
都是报告同样的错 。尝试了多种
步骤没有
动机之后,无奈中把这一行
批改成如下的
模式:
var cmd = window.configuration {};
居然通过了!!!
最终
综合,缘由便是JScript中实现和
标准的ECMAScript有差距,原来应该configuration找不到的话,应该往上递推,
扩充作用域查找
规模,直到查找到全局变量中 。很显然,JScript没有这样做 。
所以,以后大家要是遇到Mozilla中好使,然而IE中莫名其妙地报告变量找不到的话,尝试一下外加windows.前缀吧 。