使用变量在窗口中使用'in'搜索属性

时间:2016-03-25 23:06:18

标签: javascript

我试图在脚本继续之前遍历应该在Window中的所需属性名称数组。但是,当我在使用'in'关键字时使用变量而不是显式文本时,JavaScript似乎不喜欢它。

  

TypeError:无法使用'in'运算符来搜索“ServiceWorker”   窗口

我做错了什么,或者这只是它的工作方式?

const waitForScripts = () => {
  return new Promise(function(resolve, reject) {
    var required = ["ServiceWorker"];
    var loaded = 0;

    while (loaded <= required.length + 1) {
      if (loaded == required.length) {
        resolve();
      }
      for (var i = 0; i < required.length; i++) {
        var search = required[i];
        if (search in 'window') {
          loaded++;
        }
      }
    }
  });
};

2 个答案:

答案 0 :(得分:4)

您在字符串上使用了in运算符,您想在变量窗口

上使用它
if (search in window) {
    loaded++;
}

答案 1 :(得分:1)

要小心那个 e0 <= '0'; e1 <= '1'; -- ^ -- | 循环。如果由于某种原因,其中一个属性名称不在窗口对象上,则最终会出现无限循环,因为加载不会增加。