在Javascript中,如何根据当前网站命名对象?

在Javascript中,如何根据当前网站命名对象?,javascript,object,Javascript,Object,因此,我试图根据我当前使用类访问的网站命名一个对象。我知道location.hostname会告诉我当前访问的网站。我举一个例子: Site = function() {}; location.hostname = new Site(); 显然,这是行不通的。那么,我要做什么才能为Site类创建一个名为location.hostname的新对象呢?谢谢。您需要使用动态分配变量名: window[location.hostname] = new Site(); // Set console.lo

因此,我试图根据我当前使用类访问的网站命名一个对象。我知道location.hostname会告诉我当前访问的网站。我举一个例子:

Site = function() {};
location.hostname = new Site();
显然,这是行不通的。那么,我要做什么才能为Site类创建一个名为location.hostname的新对象呢?谢谢。

您需要使用动态分配变量名:

window[location.hostname] = new Site(); // Set
console.log(window[location.hostname]); // Get

以下是几件不同的事情:

  • 简言之,答案是否定的

  • 因此,您必须询问如何创建具有特定于站点的某些属性和函数的对象

  • 有几种方法可以做到这一点。与其说是创建正确的对象,不如说是访问它们。下面是正常的香草JavaScript,您应该

    var sites = {};
    
    sites['stackoverflow.com'] = { config: {}, desc: 'stuff'};
    sites['stackoverflow.org'] = { config: {}, desc: 'stuff2'};
    sites['stackoverflow.net'] = { config: {}, desc: 'stuff3'};
    

  • 我已经在上面展示了一种快速方法,但是可以使用您想要的任何对象/原型JavaScript方法。关于这个主题,有很多好的页面。

    您想将站点对象分配给主机名(这就是您上面所做的),还是想将站点对象命名为与当前站点类似的名称:您可以在站点Obj>Site.name=location.hostname中使用“name”字段