在JavaScript中使用新运算符时出错

在JavaScript中使用新运算符时出错,javascript,html,new-operator,Javascript,Html,New Operator,我正在创建一个使用JavaScript控制游戏功能的浏览器游戏,但是在浏览了互联网之后,我没有找到一个解决我的奇怪和具体问题的方法,特别是考虑到我的代码非常简单 class Location { constructor(location, name) { this.location = location; this.name = name; } } class Storage { constructor(location, name) {

我正在创建一个使用JavaScript控制游戏功能的浏览器游戏,但是在浏览了互联网之后,我没有找到一个解决我的奇怪和具体问题的方法,特别是考虑到我的代码非常简单

class Location {
    constructor(location, name) {
        this.location = location;
        this.name = name;
    }
}
class Storage {
    constructor(location, name) {
        this.location = location;
        this.name = name;
        this.milk = 0;
        this.milkinc = 1;
        this.pickles = 0;
        this.pickleinc = 1;
    }
}

var garden = new Location("map-garden", "Garden");
var house = new Storage("map-home", "Home");
这里的
location
参数只是一个参考,它在我的主HTML代码中作为一个块的位置如下所示:

<div id="map-home" class="container">
    <table class="map container">
        <tr>
            <td class="buttonholder">
                <div class="button" onclick="togglewindow('map-home')"><¬</div>
            </td>
        </tr>
        <tr>
            <td class="buttonholder">
                <div class="button" onclick="togglewindow('map-garden')">Garden</div>
            </td>
        </tr>
    </table>
…


我认为在JS中,
Location
用于其他目的。尝试使用其他名称。@user202729我尝试更改
位置
,但问题仍然存在。但是,当我更改
位置
(小写l)时,它似乎起了作用。如果你能在其他人遇到同样的错误时将此作为一个答案发布,那将是非常棒的。谢谢避免与浏览器上下文中非常拥挤的全局名称空间发生冲突的最佳方法是将所有代码隔离在一个大型匿名函数中。不要使用
location
它是
window.location
的缩写,如果将页面设置为奇怪的值,则可能会将其更改为404-在您的情况下,此.location不是window.location但我建议您使用loc或similar虽然这似乎是一个边缘错误,但它是一个变量名,因此不应更改全局变量。在另一个浏览器上测试,效果很好。我认为
Location
在JS中用于其他用途。尝试使用其他名称。@user202729我尝试更改
位置
,但问题仍然存在。但是,当我更改
位置
(小写l)时,它似乎起了作用。如果你能在其他人遇到同样的错误时将此作为一个答案发布,那将是非常棒的。谢谢避免与浏览器上下文中非常拥挤的全局名称空间发生冲突的最佳方法是将所有代码隔离在一个大型匿名函数中。不要使用
location
它是
window.location
的缩写,如果将页面设置为奇怪的值,则可能会将其更改为404-在您的情况下,此.location不是window.location但我建议您使用loc或similar虽然这似乎是一个边缘错误,但它是一个变量名,因此不应更改全局变量。在另一个浏览器上测试,效果良好。