所以我试图根据我正在使用课程访问的网站来命名对象。我知道location.hostname会告诉我我正在访问的网站。我举个例子:
Site = function() {};
location.hostname = new Site();
显然这不起作用。那么,我需要做些什么来创建一个具有location.hostname值名称的Site类的新对象?感谢。
答案 0 :(得分:0)
您需要使用bracket notation动态分配变量名称:
window[location.hostname] = new Site(); // Set
console.log(window[location.hostname]); // Get
答案 1 :(得分:0)
以下是一些不同的事情:
Does JavaScript have classes? - 简短的回答是否定的。
所以你必须要求创建一个具有某些特定于网站的属性和功能的对象。
有几种方法可以做到这一点。它不是关于创建正确的对象,而是关于访问它们的更多信息。以下是普通的vanilla JavaScript,你应该
var sites = {};
sites['stackoverflow.com'] = { config: {}, desc: 'stuff'};
sites['stackoverflow.org'] = { config: {}, desc: 'stuff2'};
sites['stackoverflow.net'] = { config: {}, desc: 'stuff3'};
我已经在上面展示了一种快速方法,但使用了您想要的任何对象/原型JavaScript方法。关于这个主题有很多好的页面。