【发布时间】:2016-12-25 08:38:36
【问题描述】:
我一直在阅读这本书,并在经历了很多艰辛和其他资源之后才读到这里(单靠它太难了,但它仍然很有用,以及其他资源)。
这是我觉得很难理解的代码:
function LifelikeWorld(map, legend) {
World.call(this, map, legend);
}
LifelikeWorld.prototype = Object.create(World.prototype);
var actionTypes = Object.create(null);
LifelikeWorld.prototype.letAct = function(critter, vector) {
var action = critter.act(new View(this, vector));
var handled = action &&
action.type in actionTypes &&
actionTypes[action.type].call(this, critter,
vector, action);
if (!handled) {
critter.energy -= 0.2;
if (critter.energy <= 0)
this.grid.set(vector, null);
}
};
var actionTypes = Object.create(null); //actionTypes 创建一个空对象吗?
var handled,我无法理解这个变量,我理解这些概念,它会检查 action、actiontype 是否为真吗?而且,actionTypes[action.type] => actionType 不是空对象?
【问题讨论】:
标签: javascript class oop prototype javascript-objects