【发布时间】:2017-03-02 19:14:30
【问题描述】:
有人帮我设计了一个很棒的 JavaScript 对象原型,但它在 jQuery 中被破坏了。在 jQuery 中它给出了一个错误:
jquery.min.js:2 Uncaught TypeError: V[g].exec is not a function
我发现 Object.defineProperty 块(如下)停止了 jQuery 错误。但它不起作用。当我调用 multiparter() 时,它只返回“未定义”。谁能帮忙解决一下?
Object.prototype.multiparter = function(route) {
var newObj = this;
route.forEach(function(key) {
newObj = newObj[key]
});
return newObj;
};
Object.defineProperty(Object.prototype, 'multiparter',{
value : function() {},
enumerable : false
});
var mekBldr = {
mecha: {
heads: {
head01: {
cost: 0,
classification: ''
}
},
rightLimbs: {
legs: {
rightleg01: {
cost: 0,
classification: ''
}
}
},
leftLimbs: {
legs: {
leftleg01: {
cost: 0,
classification: ''
}
}
}
}
};
var part = 'heads';
var stuck2 = [part];
var part1 = 'leftLimbs';
var part2 = 'legs';
var stuck = [part1, part2];
mekBldr.mecha.multiparter(stuck2).head01.cost = 2;
//goal: mekBldr.mecha.leftLimbs.legs.leftleg01.cost = 5;
mekBldr.mecha.multiparter(stuck).leftleg01.cost = 5;
【问题讨论】:
标签: javascript jquery object prototype