【发布时间】:2017-04-16 16:33:01
【问题描述】:
我正在构建一个基于网页的文本冒险游戏,例如银河系漫游指南或 Zork 系列。我将这个游戏中的对象(例如位置或玩家数据)保存在 localStorage 中,以便玩家可以继续他们的进度。
我正在使用CircularJSON 对这些对象中的循环引用进行字符串化以保存它们。
但是,当这些对象被解析时,它们是默认的Object类型。
这是一个问题,因为 Area 等类型中的函数:
var Area = function (tempdescription, tempinitialDesc, tempobjArr) {
this.isExplored = false;
this.description = tempdescription;
this.objArr = tempobjArr;
this.paths = [];
this.initialDesc = tempinitialDesc;
};
Area.prototype.getIndex = function (tempstr) {
if(thePlayer.playerLocation.objArr.length > 0) {
for(var i = 0; i < thePlayer.playerLocation.objArr.length; i++) {
if(thePlayer.playerLocation.objArr[i].name.indexOf(tempstr) != -1) {
return i;
}
}
}
return -1;
};
或播放器:
var Player = function (defaultLocation) {
this.inv = []; // an array of game objects
this.playerLocation = defaultLocation; // the player's current location
this.moveCount = 0;
this.score = 0;
};
Player.prototype.getIndex = function (tempstr) {
if(thePlayer.inv.length > 0) {
for(var i = 0; i < thePlayer.inv.length; i++) {
if(thePlayer.inv[i].name.indexOf(tempstr) != -1) {
return i;
}
}
}
return -1;
};
由我创建的,需要以每个对象顺序出现,我的其他代码才能工作。
如果存在的话,我需要以简单的方式更改几个对象的类型,因为当我保存这些对象时,到游戏结束时可能会有几十个。
有没有办法改变 Javascript 对象的类型?
【问题讨论】:
-
您好!欢迎来到 SO。您应该查看stackoverflow.com/help/how-to-ask 以改进您的问题。考虑添加示例代码和您尝试过的内容。
-
我添加了一些代码,但我还没有尝试任何东西,因为我不知道从哪里开始。感谢您的反馈。
-
先搜索:stackoverflow.com/search?q=javascript+change+object+type然后尝试,失败再问?
-
我想说这些答案已经过时了。
标签: javascript json object prototype