首页 > 解决方案 > 在Javascript中如何检查一个类之前是否加载过?

问题描述

我使用 ajax 加载一个 JS 类

所以这个方法会得到 Car 作为类名并加载它

function loadClass(className ){
$.ajax({
  url: className +".js",
  dataType: "script",
  success: success
});
}

js 可以包含例如

class Car {
  constructor(brand) {
    this.carname = brand;
  }
 }

我如何检查类是否已经加载,因为多次运行该函数会导致:

SyntaxError: redeclaration of let Car

标签: javascript

解决方案


检查类名是否定义为全局变量。

function loadClass(className) {
  if (typeof window[className] == 'undefined') {
    $.getScript(className + ".js", success)
  }
}

这实际上并没有检查名称是否定义为类,但我认为这并不重要——您可能应该避免重新定义任何全局名称。


推荐阅读