因为你没有为target赋初值,var target之后,target是undefined。 当你调用target[key]时,target是一个undefined,因此报错。 正确的方法是赋初值例如: var target = {};