相关疑难解决方法(0)

如何在JavaScript中获取全局对象?

如果已加载某个其他模块,我想检查脚本.

if (ModuleName) {
    // extend this module
}
Run Code Online (Sandbox Code Playgroud)

但如果ModuleName不存在,那就是throws.

如果我知道Global Object我能用什么呢.

if (window.ModuleName) {
    // extend this module
}
Run Code Online (Sandbox Code Playgroud)

但是,因为我希望我的模块与浏览器和工作node,rhino等等,我不能假设window.

据我了解,这在ES 5中不起作用"use strict";

var MyGLOBAL = (function () {return this;}()); // MyGlobal becomes null
Run Code Online (Sandbox Code Playgroud)

这也会因抛出异常而失败

var MyGLOBAL = window || GLOBAL
Run Code Online (Sandbox Code Playgroud)

所以我似乎离开了

try {
    // Extend ModuleName
} 
catch(ignore) {
}
Run Code Online (Sandbox Code Playgroud)

这些情况都不会传递JSLint.

我错过了什么吗?

javascript global

74
推荐指数
3
解决办法
5万
查看次数

从字符串创建对象

是否可以使用字符串创建新对象?例如,如何将字符串"product"转换为var p = new Product

提前致谢.

编辑

我想要做的是<a href="#home"></a><a href="#products">products</a>每次都有一个菜单,并从href创建相应的对象.

javascript

23
推荐指数
2
解决办法
5万
查看次数

JavaScript:类存储在哪里?(如何通过包含类名的字符串访问它们?)

标题说明了一切。我唯一能找到的是全局变量存储在window下,但对于使用class关键字定义的类来说似乎并非如此。

class Foo {
  constructor() {
   console.log('A Foo is created');
  }
}

const foo = new Foo();
const bar = new window['Foo'](); // TypeError: window.Foo is not a constructor
Run Code Online (Sandbox Code Playgroud)

我知道人们可以写类似的东西let Foo = class Foo {},但我想保持低冗余。另外,我很感兴趣是否存在一个真正的、非解决方案的解决方案只是出于好奇。

javascript class

6
推荐指数
0
解决办法
619
查看次数

标签 统计

javascript ×3

class ×1

global ×1